123 parameter( nmax = 132 )
125 parameter( maxin = 12 )
127 parameter( maxrhs = 16 )
129 parameter( matmax = 30 )
131 parameter( nin = 5, nout = 6 )
133 parameter( kdmax = nmax+( nmax+1 ) / 4 )
136 LOGICAL fatal, tstchk, tstdrv, tsterr
142 INTEGER i, ic, j, k, la, lafac, lda, nb, nm, nmats, nn,
143 $ nnb, nnb2, nns, nrhs, ntypes, nrank,
144 $ vers_major, vers_minor, vers_patch
145 DOUBLE PRECISION eps, s1, s2, threq, thresh
148 LOGICAL dotype( matmax )
149 INTEGER iwork( 25*nmax ), mval( maxin ),
150 $ nbval( maxin ), nbval2( maxin ),
151 $ nsval( maxin ), nval( maxin ), nxval( maxin ),
152 $ rankval( maxin ), piv( nmax )
153 DOUBLE PRECISION a( ( kdmax+1 )*nmax, 7 ), b( nmax*maxrhs, 4 ),
154 $ e( nmax ), rwork( 5*nmax+2*maxrhs ),
155 $ s( 2*nmax ), work( nmax, 3*nmax+maxrhs+30 )
179 INTEGER iparms( 100 )
182 COMMON / infoc / infot, nunit, ok, lerr
183 COMMON / srnamc / srnamt
184 COMMON / claenv / iparms
187 DATA threq / 2.0d0 / , intstr /
'0123456789' /
201 CALL ilaver( vers_major, vers_minor, vers_patch )
202 WRITE( nout, fmt = 9994 ) vers_major, vers_minor, vers_patch
206 READ( nin, fmt = * )nm
208 WRITE( nout, fmt = 9996 )
' NM ', nm, 1
211 ELSE IF( nm.GT.maxin )
THEN
212 WRITE( nout, fmt = 9995 )
' NM ', nm, maxin
216 READ( nin, fmt = * )( mval( i ), i = 1, nm )
218 IF( mval( i ).LT.0 )
THEN
219 WRITE( nout, fmt = 9996 )
' M ', mval( i ), 0
221 ELSE IF( mval( i ).GT.nmax )
THEN
222 WRITE( nout, fmt = 9995 )
' M ', mval( i ), nmax
227 $
WRITE( nout, fmt = 9993 )
'M ', ( mval( i ), i = 1, nm )
231 READ( nin, fmt = * )nn
233 WRITE( nout, fmt = 9996 )
' NN ', nn, 1
236 ELSE IF( nn.GT.maxin )
THEN
237 WRITE( nout, fmt = 9995 )
' NN ', nn, maxin
241 READ( nin, fmt = * )( nval( i ), i = 1, nn )
243 IF( nval( i ).LT.0 )
THEN
244 WRITE( nout, fmt = 9996 )
' N ', nval( i ), 0
246 ELSE IF( nval( i ).GT.nmax )
THEN
247 WRITE( nout, fmt = 9995 )
' N ', nval( i ), nmax
252 $
WRITE( nout, fmt = 9993 )
'N ', ( nval( i ), i = 1, nn )
256 READ( nin, fmt = * )nns
258 WRITE( nout, fmt = 9996 )
' NNS', nns, 1
261 ELSE IF( nns.GT.maxin )
THEN
262 WRITE( nout, fmt = 9995 )
' NNS', nns, maxin
266 READ( nin, fmt = * )( nsval( i ), i = 1, nns )
268 IF( nsval( i ).LT.0 )
THEN
269 WRITE( nout, fmt = 9996 )
'NRHS', nsval( i ), 0
271 ELSE IF( nsval( i ).GT.maxrhs )
THEN
272 WRITE( nout, fmt = 9995 )
'NRHS', nsval( i ), maxrhs
277 $
WRITE( nout, fmt = 9993 )
'NRHS', ( nsval( i ), i = 1, nns )
281 READ( nin, fmt = * )nnb
283 WRITE( nout, fmt = 9996 )
'NNB ', nnb, 1
286 ELSE IF( nnb.GT.maxin )
THEN
287 WRITE( nout, fmt = 9995 )
'NNB ', nnb, maxin
291 READ( nin, fmt = * )( nbval( i ), i = 1, nnb )
293 IF( nbval( i ).LT.0 )
THEN
294 WRITE( nout, fmt = 9996 )
' NB ', nbval( i ), 0
299 $
WRITE( nout, fmt = 9993 )
'NB ', ( nbval( i ), i = 1, nnb )
307 IF( nb.EQ.nbval2( j ) )
316 READ( nin, fmt = * )( nxval( i ), i = 1, nnb )
318 IF( nxval( i ).LT.0 )
THEN
319 WRITE( nout, fmt = 9996 )
' NX ', nxval( i ), 0
324 $
WRITE( nout, fmt = 9993 )
'NX ', ( nxval( i ), i = 1, nnb )
328 READ( nin, fmt = * )nrank
330 WRITE( nout, fmt = 9996 )
' NRANK ', nrank, 1
333 ELSE IF( nn.GT.maxin )
THEN
334 WRITE( nout, fmt = 9995 )
' NRANK ', nrank, maxin
338 READ( nin, fmt = * )( rankval( i ), i = 1, nrank )
340 IF( rankval( i ).LT.0 )
THEN
341 WRITE( nout, fmt = 9996 )
' RANK ', rankval( i ), 0
343 ELSE IF( rankval( i ).GT.100 )
THEN
344 WRITE( nout, fmt = 9995 )
' RANK ', rankval( i ), 100
349 $
WRITE( nout, fmt = 9993 )
'RANK % OF N',
350 $ ( rankval( i ), i = 1, nrank )
354 READ( nin, fmt = * )thresh
355 WRITE( nout, fmt = 9992 )thresh
359 READ( nin, fmt = * )tstchk
363 READ( nin, fmt = * )tstdrv
367 READ( nin, fmt = * )tsterr
370 WRITE( nout, fmt = 9999 )
376 eps =
dlamch(
'Underflow threshold' )
377 WRITE( nout, fmt = 9991 )
'underflow', eps
378 eps =
dlamch(
'Overflow threshold' )
379 WRITE( nout, fmt = 9991 )
'overflow ', eps
381 WRITE( nout, fmt = 9991 )
'precision', eps
382 WRITE( nout, fmt = * )
388 READ( nin, fmt =
'(A72)',
END = 140 )aline
398 IF( aline( i: i ).EQ.
' ' )
404 IF( c1.EQ.intstr( k: k ) )
THEN
411 nmats = nmats*10 + ic
423 IF( .NOT.
lsame( c1,
'Double precision' ) )
THEN
424 WRITE( nout, fmt = 9990 )path
426 ELSE IF( nmats.LE.0 )
THEN
430 WRITE( nout, fmt = 9989 )path
432 ELSE IF(
lsamen( 2, c2,
'GE' ) )
THEN
437 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
440 CALL dchkge( dotype, nm, mval, nn, nval, nnb2, nbval2, nns,
441 $ nsval, thresh, tsterr, lda, a( 1, 1 ),
442 $ a( 1, 2 ), a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
443 $ b( 1, 3 ), work, rwork, iwork, nout )
445 WRITE( nout, fmt = 9989 )path
449 CALL ddrvge( dotype, nn, nval, nrhs, thresh, tsterr, lda,
450 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
451 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
452 $ rwork, iwork, nout )
454 WRITE( nout, fmt = 9988 )path
457 ELSE IF(
lsamen( 2, c2,
'GB' ) )
THEN
461 la = ( 2*kdmax+1 )*nmax
462 lafac = ( 3*kdmax+1 )*nmax
464 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
467 CALL dchkgb( dotype, nm, mval, nn, nval, nnb2, nbval2, nns,
468 $ nsval, thresh, tsterr, a( 1, 1 ), la,
469 $ a( 1, 3 ), lafac, b( 1, 1 ), b( 1, 2 ),
470 $ b( 1, 3 ), work, rwork, iwork, nout )
472 WRITE( nout, fmt = 9989 )path
476 CALL ddrvgb( dotype, nn, nval, nrhs, thresh, tsterr,
477 $ a( 1, 1 ), la, a( 1, 3 ), lafac, a( 1, 6 ),
478 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s,
479 $ work, rwork, iwork, nout )
481 WRITE( nout, fmt = 9988 )path
484 ELSE IF(
lsamen( 2, c2,
'GT' ) )
THEN
489 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
492 CALL dchkgt( dotype, nn, nval, nns, nsval, thresh, tsterr,
493 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
494 $ b( 1, 3 ), work, rwork, iwork, nout )
496 WRITE( nout, fmt = 9989 )path
500 CALL ddrvgt( dotype, nn, nval, nrhs, thresh, tsterr,
501 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
502 $ b( 1, 3 ), work, rwork, iwork, nout )
504 WRITE( nout, fmt = 9988 )path
507 ELSE IF(
lsamen( 2, c2,
'PO' ) )
THEN
512 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
515 CALL dchkpo( dotype, nn, nval, nnb2, nbval2, nns, nsval,
516 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
517 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
518 $ work, rwork, iwork, nout )
520 WRITE( nout, fmt = 9989 )path
524 CALL ddrvpo( dotype, nn, nval, nrhs, thresh, tsterr, lda,
525 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
526 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
527 $ rwork, iwork, nout )
529 WRITE( nout, fmt = 9988 )path
532 ELSE IF(
lsamen( 2, c2,
'PS' ) )
THEN
538 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
541 CALL dchkps( dotype, nn, nval, nnb2, nbval2, nrank,
542 $ rankval, thresh, tsterr, lda, a( 1, 1 ),
543 $ a( 1, 2 ), a( 1, 3 ), piv, work, rwork,
546 WRITE( nout, fmt = 9989 )path
549 ELSE IF(
lsamen( 2, c2,
'PP' ) )
THEN
554 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
557 CALL dchkpp( dotype, nn, nval, nns, nsval, thresh, tsterr,
558 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
559 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
562 WRITE( nout, fmt = 9989 )path
566 CALL ddrvpp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
567 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
568 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
569 $ rwork, iwork, nout )
571 WRITE( nout, fmt = 9988 )path
574 ELSE IF(
lsamen( 2, c2,
'PB' ) )
THEN
579 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
582 CALL dchkpb( dotype, nn, nval, nnb2, nbval2, nns, nsval,
583 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
584 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
585 $ work, rwork, iwork, nout )
587 WRITE( nout, fmt = 9989 )path
591 CALL ddrvpb( dotype, nn, nval, nrhs, thresh, tsterr, lda,
592 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
593 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
594 $ rwork, iwork, nout )
596 WRITE( nout, fmt = 9988 )path
599 ELSE IF(
lsamen( 2, c2,
'PT' ) )
THEN
604 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
607 CALL dchkpt( dotype, nn, nval, nns, nsval, thresh, tsterr,
608 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
609 $ b( 1, 2 ), b( 1, 3 ), work, rwork, nout )
611 WRITE( nout, fmt = 9989 )path
615 CALL ddrvpt( dotype, nn, nval, nrhs, thresh, tsterr,
616 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
617 $ b( 1, 2 ), b( 1, 3 ), work, rwork, nout )
619 WRITE( nout, fmt = 9988 )path
622 ELSE IF(
lsamen( 2, c2,
'SY' ) )
THEN
628 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
631 CALL dchksy( dotype, nn, nval, nnb2, nbval2, nns, nsval,
632 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
633 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
634 $ work, rwork, iwork, nout )
636 WRITE( nout, fmt = 9989 )path
640 CALL ddrvsy( dotype, nn, nval, nrhs, thresh, tsterr, lda,
641 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
642 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
645 WRITE( nout, fmt = 9988 )path
648 ELSE IF(
lsamen( 2, c2,
'SR' ) )
THEN
654 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
657 CALL dchksy_rook(dotype, nn, nval, nnb2, nbval2, nns, nsval,
658 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
659 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
660 $ work, rwork, iwork, nout )
662 WRITE( nout, fmt = 9989 )path
666 CALL ddrvsy_rook( dotype, nn, nval, nrhs, thresh, tsterr,
667 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
668 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
669 $ work, rwork, iwork, nout )
671 WRITE( nout, fmt = 9988 )path
674 ELSE IF(
lsamen( 2, c2,
'SK' ) )
THEN
681 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
684 CALL dchksy_rk( dotype, nn, nval, nnb2, nbval2, nns, nsval,
685 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
686 $ e, a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
687 $ b( 1, 3 ), work, rwork, iwork, nout )
689 WRITE( nout, fmt = 9989 )path
693 CALL ddrvsy_rk( dotype, nn, nval, nrhs, thresh, tsterr,
694 $ lda, a( 1, 1 ), a( 1, 2 ), e, a( 1, 3 ),
695 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
696 $ work, rwork, iwork, nout )
698 WRITE( nout, fmt = 9988 )path
701 ELSE IF(
lsamen( 2, c2,
'SA' ) )
THEN
707 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
710 CALL dchksy_aa( dotype, nn, nval, nnb2, nbval2, nns,
711 $ nsval, thresh, tsterr, lda,
712 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
713 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
714 $ work, rwork, iwork, nout )
716 WRITE( nout, fmt = 9989 )path
720 CALL ddrvsy_aa( dotype, nn, nval, nrhs, thresh, tsterr,
721 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
722 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
723 $ work, rwork, iwork, nout )
725 WRITE( nout, fmt = 9988 )path
729 ELSE IF(
lsamen( 2, c2,
'S2' ) )
THEN
735 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
739 $ nns, nsval, thresh, tsterr, lda,
740 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
741 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
742 $ work, rwork, iwork, nout )
744 WRITE( nout, fmt = 9989 )path
749 $ dotype, nn, nval, nrhs, thresh, tsterr,
750 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
751 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
752 $ work, rwork, iwork, nout )
754 WRITE( nout, fmt = 9988 )path
758 ELSE IF(
lsamen( 2, c2,
'SP' ) )
THEN
764 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
767 CALL dchksp( dotype, nn, nval, nns, nsval, thresh, tsterr,
768 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
769 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
772 WRITE( nout, fmt = 9989 )path
776 CALL ddrvsp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
777 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
778 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
781 WRITE( nout, fmt = 9988 )path
784 ELSE IF(
lsamen( 2, c2,
'TR' ) )
THEN
789 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
792 CALL dchktr( dotype, nn, nval, nnb2, nbval2, nns, nsval,
793 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
794 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
797 WRITE( nout, fmt = 9989 )path
800 ELSE IF(
lsamen( 2, c2,
'TP' ) )
THEN
805 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
808 CALL dchktp( dotype, nn, nval, nns, nsval, thresh, tsterr,
809 $ lda, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
810 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
813 WRITE( nout, fmt = 9989 )path
816 ELSE IF(
lsamen( 2, c2,
'TB' ) )
THEN
821 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
824 CALL dchktb( dotype, nn, nval, nns, nsval, thresh, tsterr,
825 $ lda, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
826 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
829 WRITE( nout, fmt = 9989 )path
832 ELSE IF(
lsamen( 2, c2,
'QR' ) )
THEN
837 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
840 CALL dchkqr( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
841 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
842 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
843 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
844 $ work, rwork, iwork, nout )
846 WRITE( nout, fmt = 9989 )path
849 ELSE IF(
lsamen( 2, c2,
'LQ' ) )
THEN
854 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
857 CALL dchklq( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
858 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
859 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
860 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
861 $ work, rwork, nout )
863 WRITE( nout, fmt = 9989 )path
866 ELSE IF(
lsamen( 2, c2,
'QL' ) )
THEN
871 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
874 CALL dchkql( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
875 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
876 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
877 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
878 $ work, rwork, nout )
880 WRITE( nout, fmt = 9989 )path
883 ELSE IF(
lsamen( 2, c2,
'RQ' ) )
THEN
888 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
891 CALL dchkrq( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
892 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
893 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
894 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
895 $ work, rwork, iwork, nout )
897 WRITE( nout, fmt = 9989 )path
900 ELSE IF(
lsamen( 2, c2,
'QP' ) )
THEN
905 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
908 CALL dchkq3( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
909 $ thresh, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
910 $ b( 1, 3 ), work, iwork, nout )
912 WRITE( nout, fmt = 9989 )path
915 ELSE IF(
lsamen( 2, c2,
'TZ' ) )
THEN
920 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
923 CALL dchktz( dotype, nm, mval, nn, nval, thresh, tsterr,
924 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
925 $ b( 1, 3 ), work, nout )
927 WRITE( nout, fmt = 9989 )path
930 ELSE IF(
lsamen( 2, c2,
'LS' ) )
THEN
935 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
938 CALL ddrvls( dotype, nm, mval, nn, nval, nns, nsval, nnb,
939 $ nbval, nxval, thresh, tsterr, a( 1, 1 ),
940 $ a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
941 $ rwork, rwork( nmax+1 ), nout )
943 WRITE( nout, fmt = 9988 )path
946 ELSE IF(
lsamen( 2, c2,
'EQ' ) )
THEN
952 CALL dchkeq( threq, nout )
954 WRITE( nout, fmt = 9989 )path
957 ELSE IF(
lsamen( 2, c2,
'QT' ) )
THEN
962 CALL dchkqrt( thresh, tsterr, nm, mval, nn, nval, nnb,
965 WRITE( nout, fmt = 9989 )path
968 ELSE IF(
lsamen( 2, c2,
'QX' ) )
THEN
973 CALL dchkqrtp( thresh, tsterr, nm, mval, nn, nval, nnb,
976 WRITE( nout, fmt = 9989 )path
979 ELSE IF(
lsamen( 2, c2,
'TQ' ) )
THEN
984 CALL dchklqt( thresh, tsterr, nm, mval, nn, nval, nnb,
987 WRITE( nout, fmt = 9989 )path
990 ELSE IF(
lsamen( 2, c2,
'XQ' ) )
THEN
995 CALL dchklqtp( thresh, tsterr, nm, mval, nn, nval, nnb,
998 WRITE( nout, fmt = 9989 )path
1001 ELSE IF(
lsamen( 2, c2,
'TS' ) )
THEN
1006 CALL dchktsqr( thresh, tsterr, nm, mval, nn, nval, nnb,
1009 WRITE( nout, fmt = 9989 )path
1012 ELSE IF(
lsamen( 2, c2,
'HH' ) )
THEN
1017 CALL dchkorhr_col( thresh, tsterr, nm, mval, nn, nval, nnb,
1020 WRITE( nout, fmt = 9989 ) path
1026 WRITE( nout, fmt = 9990 )path
1038 WRITE( nout, fmt = 9998 )
1039 WRITE( nout, fmt = 9997 )s2 - s1
1041 9999
FORMAT( /
' Execution not attempted due to input errors' )
1042 9998
FORMAT( /
' End of tests' )
1043 9997
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
1044 9996
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be >=',
1046 9995
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be <=',
1048 9994
FORMAT(
' Tests of the DOUBLE PRECISION LAPACK routines ',
1049 $ /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1,
1050 $ / /
' The following parameter values will be used:' )
1051 9993
FORMAT( 4x, a4,
': ', 10i6, / 11x, 10i6 )
1052 9992
FORMAT( /
' Routines pass computational tests if test ratio is ',
1053 $
'less than', f8.2, / )
1054 9991
FORMAT(
' Relative machine ', a,
' is taken to be', d16.6 )
1055 9990
FORMAT( / 1x, a3,
': Unrecognized path name' )
1056 9989
FORMAT( / 1x, a3,
' routines were not tested' )
1057 9988
FORMAT( / 1x, a3,
' driver routines were not tested' )
double precision function dlamch(CMACH)
DLAMCH
double precision function dsecnd()
DSECND Using ETIME
logical function lsamen(N, CA, CB)
LSAMEN
logical function lsame(CA, CB)
LSAME
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
subroutine dchksy_aa_2stage(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSY_AA_2STAGE
subroutine ddrvgt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVGT
subroutine ddrvsy_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSY_RK
subroutine ddrvpp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVPP
subroutine ddrvpt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
DDRVPT
subroutine dchkpt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
DCHKPT
subroutine ddrvsp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSP
subroutine dchklqt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKLQT
subroutine ddrvsy_aa_2stage(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSY_AA_2STAGE
subroutine ddrvls(DOTYPE, NM, MVAL, NN, NVAL, NNS, NSVAL, NNB, NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B, COPYB, C, S, COPYS, NOUT)
DDRVLS
subroutine dchkqrt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKQRT
subroutine dchkpp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKPP
subroutine dchkpb(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKPB
subroutine dchklqtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKLQTP
subroutine ddrvpo(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVPO
subroutine dchkrq(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AR, AC, B, X, XACT, TAU, WORK, RWORK, IWORK, NOUT)
DCHKRQ
subroutine dchktz(DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A, COPYA, S, TAU, WORK, NOUT)
DCHKTZ
subroutine dchkq3(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, THRESH, A, COPYA, S, TAU, WORK, IWORK, NOUT)
DCHKQ3
subroutine dchktb(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AB, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKTB
subroutine dchkeq(THRESH, NOUT)
DCHKEQ
subroutine dchkge(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKGE
subroutine dchkps(DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL, THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK, RWORK, NOUT)
DCHKPS
subroutine dchksy_rook(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSY_ROOK
subroutine dchktp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AP, AINVP, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKTP
subroutine dchksy_rk(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSY_RK
subroutine ddrvgb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, LA, AFB, LAFB, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVGB
subroutine dchklq(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
DCHKLQ
subroutine dchkqr(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AR, AC, B, X, XACT, TAU, WORK, RWORK, IWORK, NOUT)
DCHKQR
subroutine dchksp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSP
subroutine dchksy_aa(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSY_AA
subroutine dchktr(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKTR
subroutine ddrvsy_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSY_AA
subroutine ddrvsy_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSY_ROOK
subroutine ddrvpb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVPB
subroutine dchktsqr(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKQRT
subroutine dchkgt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKGT
subroutine dchkgb(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, A, LA, AFAC, LAFAC, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKGB
subroutine ddrvge(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
DDRVGE
subroutine dchkqrtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKQRTP
subroutine dchksy(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKSY
subroutine ddrvsy(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DDRVSY
subroutine dchkorhr_col(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
DCHKORHR_COL
subroutine dchkpo(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
DCHKPO
subroutine dchkql(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
DCHKQL
subroutine ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.