197 SUBROUTINE dckgsv( NM, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH,
198 $ NMAX, A, AF, B, BF, U, V, Q, ALPHA, BETA, R,
199 $ IWORK, WORK, RWORK, NIN, NOUT, INFO )
207 INTEGER info, nin, nm, nmats, nmax, nout
208 DOUBLE PRECISION thresh
211 INTEGER iseed( 4 ), IWORK( * ), MVAL( * ), NVAL( * ),
213 DOUBLE PRECISION A( * ), AF( * ), ALPHA( * ), B( * ), BETA( * ),
214 $ BF( * ), Q( * ), R( * ), RWORK( * ), U( * ),
222 PARAMETER ( NTESTS = 12 )
224 parameter( ntypes = 8 )
228 CHARACTER DISTA, DISTB, TYPE
230 INTEGER I, IINFO, IM, IMAT, KLA, KLB, KUA, KUB, LDA,
231 $ ldb, ldq, ldr, ldu, ldv, lwork, m, modea,
232 $ modeb, n, nfail, nrun, nt, p
233 DOUBLE PRECISION ANORM, BNORM, CNDNMA, CNDNMB
236 LOGICAL DOTYPE( NTYPES )
237 DOUBLE PRECISION RESULT( NTESTS )
254 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
270 DO 20 imat = 1, ntypes
274 IF( .NOT.dotype( imat ) )
280 CALL dlatb9( path, imat, m, p, n,
TYPE, kla, kua, klb, kub,
281 $ anorm, bnorm, modea, modeb, cndnma, cndnmb,
286 CALL dlatms( m, n, dista, iseed,
TYPE, rwork, modea, cndnma,
287 $ anorm, kla, kua,
'No packing', a, lda, work,
289 IF( iinfo.NE.0 )
THEN
290 WRITE( nout, fmt = 9999 )iinfo
295 CALL dlatms( p, n, distb, iseed,
TYPE, rwork, modeb, cndnmb,
296 $ bnorm, klb, kub,
'No packing', b, ldb, work,
298 IF( iinfo.NE.0 )
THEN
299 WRITE( nout, fmt = 9999 )iinfo
306 CALL dgsvts3( m, p, n, a, af, lda, b, bf, ldb, u, ldu, v,
307 $ ldv, q, ldq, alpha, beta, r, ldr, iwork, work,
308 $ lwork, rwork, result )
314 IF( result( i ).GE.thresh )
THEN
315 IF( nfail.EQ.0 .AND. firstt )
THEN
319 WRITE( nout, fmt = 9998 )m, p, n, imat, i,
330 CALL alasum( path, nout, nfail, nrun, 0 )
332 9999
FORMAT(
' DLATMS in DCKGSV INFO = ', i5 )
333 9998
FORMAT(
' M=', i4,
' P=', i4,
', N=', i4,
', type ', i2,
334 $
', test ', i2,
', ratio=', g13.6 )