126 parameter( nmax = 132 )
128 parameter( maxin = 12 )
130 parameter( maxrhs = 16 )
132 parameter( matmax = 30 )
134 parameter( nin = 5, nout = 6 )
136 parameter( kdmax = nmax+( nmax+1 ) / 4 )
139 LOGICAL fatal, tstchk, tstdrv, tsterr
145 INTEGER i, ic, j, k, la, lafac, lda, nb, nm, nmats, nn,
146 $ nnb, nnb2, nns, nrhs, ntypes, nrank,
147 $ vers_major, vers_minor, vers_patch
148 REAL eps, s1, s2, threq, thresh
151 LOGICAL dotype( matmax )
152 INTEGER iwork( 25*nmax ), mval( maxin ),
153 $ nbval( maxin ), nbval2( maxin ),
154 $ nsval( maxin ), nval( maxin ), nxval( maxin ),
155 $ rankval( maxin ), piv( nmax )
156 REAL rwork( 150*nmax+2*maxrhs ), s( 2*nmax )
157 COMPLEX a( ( kdmax+1 )*nmax, 7 ), b( nmax*maxrhs, 4 ),
158 $ e( nmax ), work( nmax, nmax+maxrhs+10 )
184 INTEGER iparms( 100 )
187 COMMON / claenv / iparms
188 COMMON / infoc / infot, nunit, ok, lerr
189 COMMON / srnamc / srnamt
192 DATA threq / 2.0 / , intstr /
'0123456789' /
206 CALL ilaver( vers_major, vers_minor, vers_patch )
207 WRITE( nout, fmt = 9994 ) vers_major, vers_minor, vers_patch
211 READ( nin, fmt = * )nm
213 WRITE( nout, fmt = 9996 )
' NM ', nm, 1
216 ELSE IF( nm.GT.maxin )
THEN
217 WRITE( nout, fmt = 9995 )
' NM ', nm, maxin
221 READ( nin, fmt = * )( mval( i ), i = 1, nm )
223 IF( mval( i ).LT.0 )
THEN
224 WRITE( nout, fmt = 9996 )
' M ', mval( i ), 0
226 ELSE IF( mval( i ).GT.nmax )
THEN
227 WRITE( nout, fmt = 9995 )
' M ', mval( i ), nmax
232 $
WRITE( nout, fmt = 9993 )
'M ', ( mval( i ), i = 1, nm )
236 READ( nin, fmt = * )nn
238 WRITE( nout, fmt = 9996 )
' NN ', nn, 1
241 ELSE IF( nn.GT.maxin )
THEN
242 WRITE( nout, fmt = 9995 )
' NN ', nn, maxin
246 READ( nin, fmt = * )( nval( i ), i = 1, nn )
248 IF( nval( i ).LT.0 )
THEN
249 WRITE( nout, fmt = 9996 )
' N ', nval( i ), 0
251 ELSE IF( nval( i ).GT.nmax )
THEN
252 WRITE( nout, fmt = 9995 )
' N ', nval( i ), nmax
257 $
WRITE( nout, fmt = 9993 )
'N ', ( nval( i ), i = 1, nn )
261 READ( nin, fmt = * )nns
263 WRITE( nout, fmt = 9996 )
' NNS', nns, 1
266 ELSE IF( nns.GT.maxin )
THEN
267 WRITE( nout, fmt = 9995 )
' NNS', nns, maxin
271 READ( nin, fmt = * )( nsval( i ), i = 1, nns )
273 IF( nsval( i ).LT.0 )
THEN
274 WRITE( nout, fmt = 9996 )
'NRHS', nsval( i ), 0
276 ELSE IF( nsval( i ).GT.maxrhs )
THEN
277 WRITE( nout, fmt = 9995 )
'NRHS', nsval( i ), maxrhs
282 $
WRITE( nout, fmt = 9993 )
'NRHS', ( nsval( i ), i = 1, nns )
286 READ( nin, fmt = * )nnb
288 WRITE( nout, fmt = 9996 )
'NNB ', nnb, 1
291 ELSE IF( nnb.GT.maxin )
THEN
292 WRITE( nout, fmt = 9995 )
'NNB ', nnb, maxin
296 READ( nin, fmt = * )( nbval( i ), i = 1, nnb )
298 IF( nbval( i ).LT.0 )
THEN
299 WRITE( nout, fmt = 9996 )
' NB ', nbval( i ), 0
304 $
WRITE( nout, fmt = 9993 )
'NB ', ( nbval( i ), i = 1, nnb )
312 IF( nb.EQ.nbval2( j ) )
321 READ( nin, fmt = * )( nxval( i ), i = 1, nnb )
323 IF( nxval( i ).LT.0 )
THEN
324 WRITE( nout, fmt = 9996 )
' NX ', nxval( i ), 0
329 $
WRITE( nout, fmt = 9993 )
'NX ', ( nxval( i ), i = 1, nnb )
333 READ( nin, fmt = * )nrank
335 WRITE( nout, fmt = 9996 )
' NRANK ', nrank, 1
338 ELSE IF( nn.GT.maxin )
THEN
339 WRITE( nout, fmt = 9995 )
' NRANK ', nrank, maxin
343 READ( nin, fmt = * )( rankval( i ), i = 1, nrank )
345 IF( rankval( i ).LT.0 )
THEN
346 WRITE( nout, fmt = 9996 )
' RANK ', rankval( i ), 0
348 ELSE IF( rankval( i ).GT.100 )
THEN
349 WRITE( nout, fmt = 9995 )
' RANK ', rankval( i ), 100
354 $
WRITE( nout, fmt = 9993 )
'RANK % OF N',
355 $ ( rankval( i ), i = 1, nrank )
359 READ( nin, fmt = * )thresh
360 WRITE( nout, fmt = 9992 )thresh
364 READ( nin, fmt = * )tstchk
368 READ( nin, fmt = * )tstdrv
372 READ( nin, fmt = * )tsterr
375 WRITE( nout, fmt = 9999 )
381 eps =
slamch(
'Underflow threshold' )
382 WRITE( nout, fmt = 9991 )
'underflow', eps
383 eps =
slamch(
'Overflow threshold' )
384 WRITE( nout, fmt = 9991 )
'overflow ', eps
386 WRITE( nout, fmt = 9991 )
'precision', eps
387 WRITE( nout, fmt = * )
394 READ( nin, fmt =
'(A72)',
END = 140 )aline
402 IF( aline( i: i ).EQ.
' ' )
408 IF( c1.EQ.intstr( k: k ) )
THEN
415 nmats = nmats*10 + ic
426 IF( .NOT.
lsame( c1,
'Complex precision' ) )
THEN
427 WRITE( nout, fmt = 9990 )path
429 ELSE IF( nmats.LE.0 )
THEN
433 WRITE( nout, fmt = 9989 )path
435 ELSE IF(
lsamen( 2, c2,
'GE' ) )
THEN
440 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
443 CALL cchkge( dotype, nm, mval, nn, nval, nnb2, nbval2, nns,
444 $ nsval, thresh, tsterr, lda, a( 1, 1 ),
445 $ a( 1, 2 ), a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
446 $ b( 1, 3 ), work, rwork, iwork, nout )
448 WRITE( nout, fmt = 9989 )path
452 CALL cdrvge( dotype, nn, nval, nrhs, thresh, tsterr, lda,
453 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
454 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
455 $ rwork, iwork, nout )
457 WRITE( nout, fmt = 9988 )path
460 ELSE IF(
lsamen( 2, c2,
'GB' ) )
THEN
464 la = ( 2*kdmax+1 )*nmax
465 lafac = ( 3*kdmax+1 )*nmax
467 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
470 CALL cchkgb( dotype, nm, mval, nn, nval, nnb2, nbval2, nns,
471 $ nsval, thresh, tsterr, a( 1, 1 ), la,
472 $ a( 1, 3 ), lafac, b( 1, 1 ), b( 1, 2 ),
473 $ b( 1, 3 ), work, rwork, iwork, nout )
475 WRITE( nout, fmt = 9989 )path
479 CALL cdrvgb( dotype, nn, nval, nrhs, thresh, tsterr,
480 $ a( 1, 1 ), la, a( 1, 3 ), lafac, a( 1, 6 ),
481 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s,
482 $ work, rwork, iwork, nout )
484 WRITE( nout, fmt = 9988 )path
487 ELSE IF(
lsamen( 2, c2,
'GT' ) )
THEN
492 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
495 CALL cchkgt( dotype, nn, nval, nns, nsval, thresh, tsterr,
496 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
497 $ b( 1, 3 ), work, rwork, iwork, nout )
499 WRITE( nout, fmt = 9989 )path
503 CALL cdrvgt( dotype, nn, nval, nrhs, thresh, tsterr,
504 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
505 $ b( 1, 3 ), work, rwork, iwork, nout )
507 WRITE( nout, fmt = 9988 )path
510 ELSE IF(
lsamen( 2, c2,
'PO' ) )
THEN
515 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
518 CALL cchkpo( dotype, nn, nval, nnb2, nbval2, nns, nsval,
519 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
520 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
521 $ work, rwork, nout )
523 WRITE( nout, fmt = 9989 )path
527 CALL cdrvpo( dotype, nn, nval, nrhs, thresh, tsterr, lda,
528 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
529 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
532 WRITE( nout, fmt = 9988 )path
535 ELSE IF(
lsamen( 2, c2,
'PS' ) )
THEN
541 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
544 CALL cchkps( dotype, nn, nval, nnb2, nbval2, nrank,
545 $ rankval, thresh, tsterr, lda, a( 1, 1 ),
546 $ a( 1, 2 ), a( 1, 3 ), piv, work, rwork,
549 WRITE( nout, fmt = 9989 )path
552 ELSE IF(
lsamen( 2, c2,
'PP' ) )
THEN
557 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
560 CALL cchkpp( dotype, nn, nval, nns, nsval, thresh, tsterr,
561 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
562 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
565 WRITE( nout, fmt = 9989 )path
569 CALL cdrvpp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
570 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
571 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
574 WRITE( nout, fmt = 9988 )path
577 ELSE IF(
lsamen( 2, c2,
'PB' ) )
THEN
582 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
585 CALL cchkpb( dotype, nn, nval, nnb2, nbval2, nns, nsval,
586 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
587 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
588 $ work, rwork, nout )
590 WRITE( nout, fmt = 9989 )path
594 CALL cdrvpb( dotype, nn, nval, nrhs, thresh, tsterr, lda,
595 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
596 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
599 WRITE( nout, fmt = 9988 )path
602 ELSE IF(
lsamen( 2, c2,
'PT' ) )
THEN
607 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
610 CALL cchkpt( dotype, nn, nval, nns, nsval, thresh, tsterr,
611 $ a( 1, 1 ), s, a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
612 $ b( 1, 3 ), work, rwork, nout )
614 WRITE( nout, fmt = 9989 )path
618 CALL cdrvpt( dotype, nn, nval, nrhs, thresh, tsterr,
619 $ a( 1, 1 ), s, a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
620 $ b( 1, 3 ), work, rwork, nout )
622 WRITE( nout, fmt = 9988 )path
625 ELSE IF(
lsamen( 2, c2,
'HE' ) )
THEN
631 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
634 CALL cchkhe( dotype, nn, nval, nnb2, nbval2, nns, nsval,
635 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
636 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
637 $ work, rwork, iwork, nout )
639 WRITE( nout, fmt = 9989 )path
643 CALL cdrvhe( dotype, nn, nval, nrhs, thresh, tsterr, lda,
644 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
645 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
648 WRITE( nout, fmt = 9988 )path
651 ELSE IF(
lsamen( 2, c2,
'HR' ) )
THEN
657 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
660 CALL cchkhe_rook(dotype, nn, nval, nnb2, nbval2, nns, nsval,
661 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
662 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
663 $ work, rwork, iwork, nout )
665 WRITE( nout, fmt = 9989 )path
669 CALL cdrvhe_rook( dotype, nn, nval, nrhs, thresh, tsterr,
670 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
671 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
672 $ rwork, iwork, nout )
674 WRITE( nout, fmt = 9988 )path
677 ELSE IF(
lsamen( 2, c2,
'HK' ) )
THEN
684 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
687 CALL cchkhe_rk( dotype, nn, nval, nnb2, nbval2, nns, nsval,
688 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
689 $ e, a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
690 $ b( 1, 3 ), work, rwork, iwork, nout )
692 WRITE( nout, fmt = 9989 )path
696 CALL cdrvhe_rk( dotype, nn, nval, nrhs, thresh, tsterr,
697 $ lda, a( 1, 1 ), a( 1, 2 ), e, a( 1, 3 ),
698 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
699 $ rwork, iwork, nout )
701 WRITE( nout, fmt = 9988 )path
704 ELSE IF(
lsamen( 2, c2,
'HA' ) )
THEN
710 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
713 CALL cchkhe_aa( dotype, nn, nval, nnb2, nbval2, nns,
714 $ nsval, thresh, tsterr, lda,
715 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
716 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
717 $ work, rwork, iwork, nout )
719 WRITE( nout, fmt = 9989 )path
723 CALL cdrvhe_aa( dotype, nn, nval, nrhs, thresh, tsterr,
724 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
725 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
726 $ work, rwork, iwork, nout )
728 WRITE( nout, fmt = 9988 )path
731 ELSE IF(
lsamen( 2, c2,
'H2' ) )
THEN
737 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
741 $ nns, nsval, thresh, tsterr, lda,
742 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
743 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
744 $ work, rwork, iwork, nout )
746 WRITE( nout, fmt = 9989 )path
751 $ dotype, nn, nval, nrhs, thresh, tsterr,
752 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
753 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
754 $ work, rwork, iwork, nout )
756 WRITE( nout, fmt = 9988 )path
759 ELSE IF(
lsamen( 2, c2,
'HP' ) )
THEN
765 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
768 CALL cchkhp( dotype, nn, nval, nns, nsval, thresh, tsterr,
769 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
770 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
773 WRITE( nout, fmt = 9989 )path
777 CALL cdrvhp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
778 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
779 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
782 WRITE( nout, fmt = 9988 )path
785 ELSE IF(
lsamen( 2, c2,
'SY' ) )
THEN
791 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
794 CALL cchksy( dotype, nn, nval, nnb2, nbval2, nns, nsval,
795 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
796 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
797 $ work, rwork, iwork, nout )
799 WRITE( nout, fmt = 9989 )path
803 CALL cdrvsy( dotype, nn, nval, nrhs, thresh, tsterr, lda,
804 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
805 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
808 WRITE( nout, fmt = 9988 )path
811 ELSE IF(
lsamen( 2, c2,
'SR' ) )
THEN
817 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
820 CALL cchksy_rook(dotype, nn, nval, nnb2, nbval2, nns, nsval,
821 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
822 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
823 $ work, rwork, iwork, nout )
825 WRITE( nout, fmt = 9989 )path
829 CALL cdrvsy_rook( dotype, nn, nval, nrhs, thresh, tsterr,
830 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
831 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
832 $ rwork, iwork, nout )
834 WRITE( nout, fmt = 9988 )path
837 ELSE IF(
lsamen( 2, c2,
'SK' ) )
THEN
844 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
847 CALL cchksy_rk( dotype, nn, nval, nnb2, nbval2, nns, nsval,
848 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
849 $ e, a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
850 $ b( 1, 3 ), work, rwork, iwork, nout )
852 WRITE( nout, fmt = 9989 )path
856 CALL cdrvsy_rk( dotype, nn, nval, nrhs, thresh, tsterr,
857 $ lda, a( 1, 1 ), a( 1, 2 ), e, a( 1, 3 ),
858 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
859 $ rwork, iwork, nout )
861 WRITE( nout, fmt = 9988 )path
864 ELSE IF(
lsamen( 2, c2,
'SA' ) )
THEN
869 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
872 CALL cchksy_aa( dotype, nn, nval, nnb2, nbval2, nns, nsval,
873 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
874 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
875 $ b( 1, 3 ), work, rwork, iwork, nout )
877 WRITE( nout, fmt = 9989 )path
881 CALL cdrvsy_aa( dotype, nn, nval, nrhs, thresh, tsterr,
882 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
883 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
884 $ rwork, iwork, nout )
886 WRITE( nout, fmt = 9988 )path
889 ELSE IF(
lsamen( 2, c2,
'S2' ) )
THEN
895 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
899 $ nsval, thresh, tsterr, lda,
900 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
901 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
902 $ work, rwork, iwork, nout )
904 WRITE( nout, fmt = 9989 )path
909 $ dotype, nn, nval, nrhs, thresh, tsterr,
910 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
911 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work,
912 $ rwork, iwork, nout )
914 WRITE( nout, fmt = 9988 )path
917 ELSE IF(
lsamen( 2, c2,
'SP' ) )
THEN
923 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
926 CALL cchksp( dotype, nn, nval, nns, nsval, thresh, tsterr,
927 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
928 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
931 WRITE( nout, fmt = 9989 )path
935 CALL cdrvsp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
936 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
937 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
940 WRITE( nout, fmt = 9988 )path
943 ELSE IF(
lsamen( 2, c2,
'TR' ) )
THEN
948 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
951 CALL cchktr( dotype, nn, nval, nnb2, nbval2, nns, nsval,
952 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
953 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
956 WRITE( nout, fmt = 9989 )path
959 ELSE IF(
lsamen( 2, c2,
'TP' ) )
THEN
964 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
967 CALL cchktp( dotype, nn, nval, nns, nsval, thresh, tsterr,
968 $ lda, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
969 $ b( 1, 2 ), b( 1, 3 ), work, rwork, nout )
971 WRITE( nout, fmt = 9989 )path
974 ELSE IF(
lsamen( 2, c2,
'TB' ) )
THEN
979 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
982 CALL cchktb( dotype, nn, nval, nns, nsval, thresh, tsterr,
983 $ lda, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
984 $ b( 1, 2 ), b( 1, 3 ), work, rwork, nout )
986 WRITE( nout, fmt = 9989 )path
989 ELSE IF(
lsamen( 2, c2,
'QR' ) )
THEN
994 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
997 CALL cchkqr( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
998 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
999 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
1000 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
1001 $ work, rwork, iwork, nout )
1003 WRITE( nout, fmt = 9989 )path
1006 ELSE IF(
lsamen( 2, c2,
'LQ' ) )
THEN
1011 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
1014 CALL cchklq( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
1015 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
1016 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
1017 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
1018 $ work, rwork, nout )
1020 WRITE( nout, fmt = 9989 )path
1023 ELSE IF(
lsamen( 2, c2,
'QL' ) )
THEN
1028 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
1031 CALL cchkql( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
1032 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
1033 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
1034 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
1035 $ work, rwork, nout )
1037 WRITE( nout, fmt = 9989 )path
1040 ELSE IF(
lsamen( 2, c2,
'RQ' ) )
THEN
1045 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
1048 CALL cchkrq( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
1049 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
1050 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
1051 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
1052 $ work, rwork, iwork, nout )
1054 WRITE( nout, fmt = 9989 )path
1057 ELSE IF(
lsamen( 2, c2,
'EQ' ) )
THEN
1063 CALL cchkeq( threq, nout )
1065 WRITE( nout, fmt = 9989 )path
1068 ELSE IF(
lsamen( 2, c2,
'TZ' ) )
THEN
1073 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
1076 CALL cchktz( dotype, nm, mval, nn, nval, thresh, tsterr,
1077 $ a( 1, 1 ), a( 1, 2 ), s( 1 ),
1078 $ b( 1, 1 ), work, rwork, nout )
1080 WRITE( nout, fmt = 9989 )path
1083 ELSE IF(
lsamen( 2, c2,
'QP' ) )
THEN
1088 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
1091 CALL cchkq3( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
1092 $ thresh, a( 1, 1 ), a( 1, 2 ), s( 1 ),
1093 $ b( 1, 1 ), work, rwork, iwork, nout )
1095 WRITE( nout, fmt = 9989 )path
1098 ELSE IF(
lsamen( 2, c2,
'LS' ) )
THEN
1103 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
1106 CALL cdrvls( dotype, nm, mval, nn, nval, nns, nsval, nnb,
1107 $ nbval, nxval, thresh, tsterr, a( 1, 1 ),
1108 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
1109 $ s( 1 ), s( nmax+1 ), nout )
1111 WRITE( nout, fmt = 9989 )path
1114 ELSE IF(
lsamen( 2, c2,
'QT' ) )
THEN
1119 CALL cchkqrt( thresh, tsterr, nm, mval, nn, nval, nnb,
1122 WRITE( nout, fmt = 9989 )path
1125 ELSE IF(
lsamen( 2, c2,
'QX' ) )
THEN
1130 CALL cchkqrtp( thresh, tsterr, nm, mval, nn, nval, nnb,
1133 WRITE( nout, fmt = 9989 )path
1136 ELSE IF(
lsamen( 2, c2,
'TQ' ) )
THEN
1141 CALL cchklqt( thresh, tsterr, nm, mval, nn, nval, nnb,
1144 WRITE( nout, fmt = 9989 )path
1147 ELSE IF(
lsamen( 2, c2,
'XQ' ) )
THEN
1152 CALL cchklqtp( thresh, tsterr, nm, mval, nn, nval, nnb,
1155 WRITE( nout, fmt = 9989 )path
1158 ELSE IF(
lsamen( 2, c2,
'TS' ) )
THEN
1163 CALL cchktsqr( thresh, tsterr, nm, mval, nn, nval, nnb,
1166 WRITE( nout, fmt = 9989 )path
1169 ELSE IF(
lsamen( 2, c2,
'HH' ) )
THEN
1174 CALL cchkunhr_col( thresh, tsterr, nm, mval, nn, nval, nnb,
1177 WRITE( nout, fmt = 9989 ) path
1182 WRITE( nout, fmt = 9990 )path
1194 WRITE( nout, fmt = 9998 )
1195 WRITE( nout, fmt = 9997 )s2 - s1
1197 9999
FORMAT( /
' Execution not attempted due to input errors' )
1198 9998
FORMAT( /
' End of tests' )
1199 9997
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
1200 9996
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be >=',
1202 9995
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be <=',
1204 9994
FORMAT(
' Tests of the COMPLEX LAPACK routines ',
1205 $ /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1,
1206 $ / /
' The following parameter values will be used:' )
1207 9993
FORMAT( 4x, a4,
': ', 10i6, / 11x, 10i6 )
1208 9992
FORMAT( /
' Routines pass computational tests if test ratio is ',
1209 $
'less than', f8.2, / )
1210 9991
FORMAT(
' Relative machine ', a,
' is taken to be', e16.6 )
1211 9990
FORMAT( / 1x, a3,
': Unrecognized path name' )
1212 9989
FORMAT( / 1x, a3,
' routines were not tested' )
1213 9988
FORMAT( / 1x, a3,
' driver routines were not tested' )
logical function lsamen(N, CA, CB)
LSAMEN
logical function lsame(CA, CB)
LSAME
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
subroutine cchkps(DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL, THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK, RWORK, NOUT)
CCHKPS
subroutine cchkhe_rk(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHE_RK
subroutine cdrvsy(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY
subroutine cdrvsy_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY_ROOK
subroutine cchkunhr_col(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKUNHR_COL
subroutine cdrvge(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
CDRVGE
subroutine cdrvhp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHP
subroutine cdrvhe_aa_2stage(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE_AA_2STAGE
subroutine cdrvgt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVGT
subroutine cchkpp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKPP
subroutine cchkge(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKGE
subroutine cchklq(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
CCHKLQ
subroutine cchkqr(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)
CCHKQR
subroutine cchkqrtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKQRTP
subroutine cchkrq(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)
CCHKRQ
subroutine cchksy_rook(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSY_ROOK
subroutine cdrvpo(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
CDRVPO
subroutine cchkpo(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKPO
subroutine cdrvsy_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY_AA
subroutine cdrvhe(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE
subroutine cchksy_rk(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSY_RK
subroutine cchksy(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSY
subroutine cchktz(DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A, COPYA, S, TAU, WORK, RWORK, NOUT)
CCHKTZ
subroutine cchkqrt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKQRT
subroutine cchkhe_aa(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHE_AA
subroutine cdrvsp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSP
subroutine cdrvls(DOTYPE, NM, MVAL, NN, NVAL, NNS, NSVAL, NNB, NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B, COPYB, C, S, COPYS, NOUT)
CDRVLS
subroutine cdrvsy_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY_RK
subroutine cchktp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AP, AINVP, B, X, XACT, WORK, RWORK, NOUT)
CCHKTP
subroutine cchktb(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AB, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKTB
subroutine cdrvhe_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE_RK
subroutine cchksy_aa(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSY_AA
subroutine cchkq3(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, THRESH, A, COPYA, S, TAU, WORK, RWORK, IWORK, NOUT)
CCHKQ3
subroutine cchkpb(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKPB
subroutine cchktr(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AINV, B, X, XACT, WORK, RWORK, NOUT)
CCHKTR
subroutine cchkgb(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, A, LA, AFAC, LAFAC, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKGB
subroutine cdrvsy_aa_2stage(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVSY_AA_2STAGE
subroutine cdrvgb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, LA, AFB, LAFB, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
CDRVGB
subroutine cchkeq(THRESH, NOUT)
CCHKEQ
subroutine cdrvpb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
CDRVPB
subroutine cchkpt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
CCHKPT
subroutine cdrvpt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
CDRVPT
subroutine cchkhe_aa_2stage(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHE_AA_2STAGE
subroutine cdrvhe_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE_ROOK
subroutine cchksy_aa_2stage(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSY_AA_2STAGE
subroutine cchkhe(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHE
subroutine cchkql(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
CCHKQL
subroutine cchkgt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKGT
subroutine cdrvhe_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CDRVHE_AA
subroutine cchksp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKSP
subroutine cdrvpp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, NOUT)
CDRVPP
subroutine cchkhe_rook(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHE_ROOK
subroutine cchkhp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
CCHKHP
subroutine cchklqtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKLQTP
subroutine cchklqt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKLQT
subroutine cchktsqr(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
CCHKQRT
subroutine ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
real function second()
SECOND Using ETIME
real function slamch(CMACH)
SLAMCH