120 parameter( nmax = 132 )
122 parameter( maxin = 12 )
124 parameter( maxrhs = 16 )
126 parameter( matmax = 30 )
128 parameter( nin = 5, nout = 6 )
130 parameter( kdmax = nmax+( nmax+1 ) / 4 )
133 LOGICAL fatal, tstchk, tstdrv, tsterr
139 INTEGER i, ic, j, k, la, lafac, lda, nb, nm, nmats, nn,
140 $ nnb, nnb2, nns, nrhs, ntypes, nrank,
141 $ vers_major, vers_minor, vers_patch
142 REAL eps, s1, s2, threq, thresh
145 LOGICAL dotype( matmax )
146 INTEGER iwork( 25*nmax ), mval( maxin ),
147 $ nbval( maxin ), nbval2( maxin ),
148 $ nsval( maxin ), nval( maxin ), nxval( maxin ),
149 $ rankval( maxin ), piv( nmax )
150 REAL e( nmax ), s( 2*nmax )
153 INTEGER allocatestatus
154 REAL,
DIMENSION(:),
ALLOCATABLE :: rwork
155 REAL,
DIMENSION(:,:),
ALLOCATABLE :: a, b, work
179 INTEGER iparms( 100 )
182 COMMON / claenv / iparms
183 COMMON / infoc / infot, nunit, ok, lerr
184 COMMON / srnamc / srnamt
187 DATA threq / 2.0e0 / , intstr /
'0123456789' /
191 ALLOCATE (a( ( kdmax+1 )*nmax, 7 ), stat = allocatestatus )
192 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
193 ALLOCATE (b( nmax*maxrhs, 4 ), stat = allocatestatus )
194 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
195 ALLOCATE (work( nmax, nmax+maxrhs+30 ) , stat = allocatestatus )
196 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
197 ALLOCATE (rwork( 5*nmax+2*maxrhs ), stat = allocatestatus )
198 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
212 CALL ilaver( vers_major, vers_minor, vers_patch )
213 WRITE( nout, fmt = 9994 ) vers_major, vers_minor, vers_patch
217 READ( nin, fmt = * )nm
219 WRITE( nout, fmt = 9996 )
' NM ', nm, 1
222 ELSE IF( nm.GT.maxin )
THEN
223 WRITE( nout, fmt = 9995 )
' NM ', nm, maxin
227 READ( nin, fmt = * )( mval( i ), i = 1, nm )
229 IF( mval( i ).LT.0 )
THEN
230 WRITE( nout, fmt = 9996 )
' M ', mval( i ), 0
232 ELSE IF( mval( i ).GT.nmax )
THEN
233 WRITE( nout, fmt = 9995 )
' M ', mval( i ), nmax
238 $
WRITE( nout, fmt = 9993 )
'M ', ( mval( i ), i = 1, nm )
242 READ( nin, fmt = * )nn
244 WRITE( nout, fmt = 9996 )
' NN ', nn, 1
247 ELSE IF( nn.GT.maxin )
THEN
248 WRITE( nout, fmt = 9995 )
' NN ', nn, maxin
252 READ( nin, fmt = * )( nval( i ), i = 1, nn )
254 IF( nval( i ).LT.0 )
THEN
255 WRITE( nout, fmt = 9996 )
' N ', nval( i ), 0
257 ELSE IF( nval( i ).GT.nmax )
THEN
258 WRITE( nout, fmt = 9995 )
' N ', nval( i ), nmax
263 $
WRITE( nout, fmt = 9993 )
'N ', ( nval( i ), i = 1, nn )
267 READ( nin, fmt = * )nns
269 WRITE( nout, fmt = 9996 )
' NNS', nns, 1
272 ELSE IF( nns.GT.maxin )
THEN
273 WRITE( nout, fmt = 9995 )
' NNS', nns, maxin
277 READ( nin, fmt = * )( nsval( i ), i = 1, nns )
279 IF( nsval( i ).LT.0 )
THEN
280 WRITE( nout, fmt = 9996 )
'NRHS', nsval( i ), 0
282 ELSE IF( nsval( i ).GT.maxrhs )
THEN
283 WRITE( nout, fmt = 9995 )
'NRHS', nsval( i ), maxrhs
288 $
WRITE( nout, fmt = 9993 )
'NRHS', ( nsval( i ), i = 1, nns )
292 READ( nin, fmt = * )nnb
294 WRITE( nout, fmt = 9996 )
'NNB ', nnb, 1
297 ELSE IF( nnb.GT.maxin )
THEN
298 WRITE( nout, fmt = 9995 )
'NNB ', nnb, maxin
302 READ( nin, fmt = * )( nbval( i ), i = 1, nnb )
304 IF( nbval( i ).LT.0 )
THEN
305 WRITE( nout, fmt = 9996 )
' NB ', nbval( i ), 0
310 $
WRITE( nout, fmt = 9993 )
'NB ', ( nbval( i ), i = 1, nnb )
318 IF( nb.EQ.nbval2( j ) )
327 READ( nin, fmt = * )( nxval( i ), i = 1, nnb )
329 IF( nxval( i ).LT.0 )
THEN
330 WRITE( nout, fmt = 9996 )
' NX ', nxval( i ), 0
335 $
WRITE( nout, fmt = 9993 )
'NX ', ( nxval( i ), i = 1, nnb )
339 READ( nin, fmt = * )nrank
341 WRITE( nout, fmt = 9996 )
' NRANK ', nrank, 1
344 ELSE IF( nn.GT.maxin )
THEN
345 WRITE( nout, fmt = 9995 )
' NRANK ', nrank, maxin
349 READ( nin, fmt = * )( rankval( i ), i = 1, nrank )
351 IF( rankval( i ).LT.0 )
THEN
352 WRITE( nout, fmt = 9996 )
' RANK ', rankval( i ), 0
354 ELSE IF( rankval( i ).GT.100 )
THEN
355 WRITE( nout, fmt = 9995 )
' RANK ', rankval( i ), 100
360 $
WRITE( nout, fmt = 9993 )
'RANK % OF N',
361 $ ( rankval( i ), i = 1, nrank )
365 READ( nin, fmt = * )thresh
366 WRITE( nout, fmt = 9992 )thresh
370 READ( nin, fmt = * )tstchk
374 READ( nin, fmt = * )tstdrv
378 READ( nin, fmt = * )tsterr
381 WRITE( nout, fmt = 9999 )
387 eps =
slamch(
'Underflow threshold' )
388 WRITE( nout, fmt = 9991 )
'underflow', eps
389 eps =
slamch(
'Overflow threshold' )
390 WRITE( nout, fmt = 9991 )
'overflow ', eps
392 WRITE( nout, fmt = 9991 )
'precision', eps
393 WRITE( nout, fmt = * )
399 READ( nin, fmt =
'(A72)',
END = 140 )aline
409 IF( aline( i: i ).EQ.
' ' )
415 IF( c1.EQ.intstr( k: k ) )
THEN
422 nmats = nmats*10 + ic
434 IF( .NOT.
lsame( c1,
'Single precision' ) )
THEN
435 WRITE( nout, fmt = 9990 )path
437 ELSE IF( nmats.LE.0 )
THEN
441 WRITE( nout, fmt = 9989 )path
443 ELSE IF(
lsamen( 2, c2,
'GE' ) )
THEN
448 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
451 CALL schkge( dotype, nm, mval, nn, nval, nnb2, nbval2, nns,
452 $ nsval, thresh, tsterr, lda, a( 1, 1 ),
453 $ a( 1, 2 ), a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
454 $ b( 1, 3 ), work, rwork, iwork, nout )
456 WRITE( nout, fmt = 9989 )path
460 CALL sdrvge( dotype, nn, nval, nrhs, thresh, tsterr, lda,
461 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
462 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
463 $ rwork, iwork, nout )
465 WRITE( nout, fmt = 9988 )path
468 ELSE IF(
lsamen( 2, c2,
'GB' ) )
THEN
472 la = ( 2*kdmax+1 )*nmax
473 lafac = ( 3*kdmax+1 )*nmax
475 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
478 CALL schkgb( dotype, nm, mval, nn, nval, nnb2, nbval2, nns,
479 $ nsval, thresh, tsterr, a( 1, 1 ), la,
480 $ a( 1, 3 ), lafac, b( 1, 1 ), b( 1, 2 ),
481 $ b( 1, 3 ), work, rwork, iwork, nout )
483 WRITE( nout, fmt = 9989 )path
487 CALL sdrvgb( dotype, nn, nval, nrhs, thresh, tsterr,
488 $ a( 1, 1 ), la, a( 1, 3 ), lafac, a( 1, 6 ),
489 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s,
490 $ work, rwork, iwork, nout )
492 WRITE( nout, fmt = 9988 )path
495 ELSE IF(
lsamen( 2, c2,
'GT' ) )
THEN
500 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
503 CALL schkgt( dotype, nn, nval, nns, nsval, 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 = 9989 )path
511 CALL sdrvgt( dotype, nn, nval, nrhs, thresh, tsterr,
512 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
513 $ b( 1, 3 ), work, rwork, iwork, nout )
515 WRITE( nout, fmt = 9988 )path
518 ELSE IF(
lsamen( 2, c2,
'PO' ) )
THEN
523 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
526 CALL schkpo( dotype, nn, nval, nnb2, nbval2, nns, nsval,
527 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
528 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
529 $ work, rwork, iwork, nout )
531 WRITE( nout, fmt = 9989 )path
535 CALL sdrvpo( dotype, nn, nval, nrhs, thresh, tsterr, lda,
536 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
537 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
538 $ rwork, iwork, nout )
540 WRITE( nout, fmt = 9988 )path
543 ELSE IF(
lsamen( 2, c2,
'PS' ) )
THEN
549 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
552 CALL schkps( dotype, nn, nval, nnb2, nbval2, nrank,
553 $ rankval, thresh, tsterr, lda, a( 1, 1 ),
554 $ a( 1, 2 ), a( 1, 3 ), piv, work, rwork,
557 WRITE( nout, fmt = 9989 )path
560 ELSE IF(
lsamen( 2, c2,
'PP' ) )
THEN
565 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
568 CALL schkpp( dotype, nn, nval, nns, nsval, thresh, tsterr,
569 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
570 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
573 WRITE( nout, fmt = 9989 )path
577 CALL sdrvpp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
578 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
579 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
580 $ rwork, iwork, nout )
582 WRITE( nout, fmt = 9988 )path
585 ELSE IF(
lsamen( 2, c2,
'PB' ) )
THEN
590 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
593 CALL schkpb( dotype, nn, nval, nnb2, nbval2, nns, nsval,
594 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
595 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
596 $ work, rwork, iwork, nout )
598 WRITE( nout, fmt = 9989 )path
602 CALL sdrvpb( dotype, nn, nval, nrhs, thresh, tsterr, lda,
603 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
604 $ b( 1, 2 ), b( 1, 3 ), b( 1, 4 ), s, work,
605 $ rwork, iwork, nout )
607 WRITE( nout, fmt = 9988 )path
610 ELSE IF(
lsamen( 2, c2,
'PT' ) )
THEN
615 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
618 CALL schkpt( dotype, nn, nval, nns, nsval, thresh, tsterr,
619 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
620 $ b( 1, 2 ), b( 1, 3 ), work, rwork, nout )
622 WRITE( nout, fmt = 9989 )path
626 CALL sdrvpt( dotype, nn, nval, nrhs, thresh, tsterr,
627 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
628 $ b( 1, 2 ), b( 1, 3 ), work, rwork, nout )
630 WRITE( nout, fmt = 9988 )path
633 ELSE IF(
lsamen( 2, c2,
'SY' ) )
THEN
639 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
642 CALL schksy( dotype, nn, nval, nnb2, nbval2, nns, nsval,
643 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
644 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
645 $ work, rwork, iwork, nout )
647 WRITE( nout, fmt = 9989 )path
651 CALL sdrvsy( dotype, nn, nval, nrhs, thresh, tsterr, lda,
652 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
653 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
656 WRITE( nout, fmt = 9988 )path
659 ELSE IF(
lsamen( 2, c2,
'SR' ) )
THEN
665 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
668 CALL schksy_rook(dotype, nn, nval, nnb2, nbval2, nns, nsval,
669 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
670 $ a( 1, 3 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
671 $ work, rwork, iwork, nout )
673 WRITE( nout, fmt = 9989 )path
677 CALL sdrvsy_rook( dotype, nn, nval, nrhs, thresh, tsterr,
678 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
679 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
680 $ work, rwork, iwork, nout )
682 WRITE( nout, fmt = 9988 )path
685 ELSE IF(
lsamen( 2, c2,
'SK' ) )
THEN
692 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
695 CALL schksy_rk( dotype, nn, nval, nnb2, nbval2, nns, nsval,
696 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
697 $ e, a( 1, 3 ), b( 1, 1 ), b( 1, 2 ),
698 $ b( 1, 3 ), work, rwork, iwork, nout )
700 WRITE( nout, fmt = 9989 )path
704 CALL sdrvsy_rk( dotype, nn, nval, nrhs, thresh, tsterr,
705 $ lda, a( 1, 1 ), a( 1, 2 ), e, a( 1, 3 ),
706 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
707 $ work, rwork, iwork, nout )
709 WRITE( nout, fmt = 9988 )path
712 ELSE IF(
lsamen( 2, c2,
'SA' ) )
THEN
718 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
721 CALL schksy_aa( dotype, nn, nval, nnb2, nbval2, nns,
722 $ nsval, thresh, tsterr, lda,
723 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
724 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
725 $ work, rwork, iwork, nout )
727 WRITE( nout, fmt = 9989 )path
731 CALL sdrvsy_aa( dotype, nn, nval, nrhs, thresh, tsterr,
732 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
733 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
734 $ work, rwork, iwork, nout )
736 WRITE( nout, fmt = 9988 )path
739 ELSE IF(
lsamen( 2, c2,
'S2' ) )
THEN
745 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
749 $ nns, nsval, thresh, tsterr, lda,
750 $ 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 = 9989 )path
759 $ dotype, nn, nval, nrhs, thresh, tsterr,
760 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
761 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
762 $ work, rwork, iwork, nout )
764 WRITE( nout, fmt = 9988 )path
767 ELSE IF(
lsamen( 2, c2,
'SP' ) )
THEN
773 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
776 CALL schksp( dotype, nn, nval, nns, nsval, thresh, tsterr,
777 $ lda, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
778 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
781 WRITE( nout, fmt = 9989 )path
785 CALL sdrvsp( dotype, nn, nval, nrhs, thresh, tsterr, lda,
786 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), b( 1, 1 ),
787 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
790 WRITE( nout, fmt = 9988 )path
793 ELSE IF(
lsamen( 2, c2,
'TR' ) )
THEN
798 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
801 CALL schktr( dotype, nn, nval, nnb2, nbval2, nns, nsval,
802 $ thresh, tsterr, lda, a( 1, 1 ), a( 1, 2 ),
803 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), work, rwork,
806 WRITE( nout, fmt = 9989 )path
809 ELSE IF(
lsamen( 2, c2,
'TP' ) )
THEN
814 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
817 CALL schktp( dotype, nn, nval, nns, nsval, thresh, tsterr,
818 $ lda, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
819 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
822 WRITE( nout, fmt = 9989 )path
825 ELSE IF(
lsamen( 2, c2,
'TB' ) )
THEN
830 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
833 CALL schktb( dotype, nn, nval, nns, nsval, thresh, tsterr,
834 $ lda, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
835 $ b( 1, 2 ), b( 1, 3 ), work, rwork, iwork,
838 WRITE( nout, fmt = 9989 )path
841 ELSE IF(
lsamen( 2, c2,
'QR' ) )
THEN
846 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
849 CALL schkqr( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
850 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
851 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
852 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
853 $ work, rwork, iwork, nout )
855 WRITE( nout, fmt = 9989 )path
858 ELSE IF(
lsamen( 2, c2,
'LQ' ) )
THEN
863 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
866 CALL schklq( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
867 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
868 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
869 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
870 $ work, rwork, nout )
872 WRITE( nout, fmt = 9989 )path
875 ELSE IF(
lsamen( 2, c2,
'QL' ) )
THEN
880 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
883 CALL schkql( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
884 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
885 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
886 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
887 $ work, rwork, nout )
889 WRITE( nout, fmt = 9989 )path
892 ELSE IF(
lsamen( 2, c2,
'RQ' ) )
THEN
897 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
900 CALL schkrq( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
901 $ nrhs, thresh, tsterr, nmax, a( 1, 1 ),
902 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
903 $ b( 1, 1 ), b( 1, 2 ), b( 1, 3 ), b( 1, 4 ),
904 $ work, rwork, iwork, nout )
906 WRITE( nout, fmt = 9989 )path
909 ELSE IF(
lsamen( 2, c2,
'QP' ) )
THEN
914 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
917 CALL schkq3( dotype, nm, mval, nn, nval, nnb, nbval, nxval,
918 $ thresh, a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
919 $ b( 1, 3 ), work, iwork, nout )
921 WRITE( nout, fmt = 9989 )path
924 ELSE IF(
lsamen( 2, c2,
'TZ' ) )
THEN
929 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
932 CALL schktz( dotype, nm, mval, nn, nval, thresh, tsterr,
933 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ),
934 $ b( 1, 3 ), work, nout )
936 WRITE( nout, fmt = 9989 )path
939 ELSE IF(
lsamen( 2, c2,
'LS' ) )
THEN
944 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
947 CALL sdrvls( dotype, nm, mval, nn, nval, nns, nsval, nnb,
948 $ nbval, nxval, thresh, tsterr, a( 1, 1 ),
949 $ a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
950 $ rwork, rwork( nmax+1 ), nout )
952 WRITE( nout, fmt = 9988 )path
955 ELSE IF(
lsamen( 2, c2,
'EQ' ) )
THEN
961 CALL schkeq( threq, nout )
963 WRITE( nout, fmt = 9989 )path
966 ELSE IF(
lsamen( 2, c2,
'QT' ) )
THEN
971 CALL schkqrt( thresh, tsterr, nm, mval, nn, nval, nnb,
974 WRITE( nout, fmt = 9989 )path
977 ELSE IF(
lsamen( 2, c2,
'QX' ) )
THEN
982 CALL schkqrtp( thresh, tsterr, nm, mval, nn, nval, nnb,
985 WRITE( nout, fmt = 9989 )path
988 ELSE IF(
lsamen( 2, c2,
'TQ' ) )
THEN
993 CALL schklqt( thresh, tsterr, nm, mval, nn, nval, nnb,
996 WRITE( nout, fmt = 9989 )path
999 ELSE IF(
lsamen( 2, c2,
'XQ' ) )
THEN
1004 CALL schklqtp( thresh, tsterr, nm, mval, nn, nval, nnb,
1007 WRITE( nout, fmt = 9989 )path
1010 ELSE IF(
lsamen( 2, c2,
'TS' ) )
THEN
1015 CALL schktsqr( thresh, tsterr, nm, mval, nn, nval, nnb,
1018 WRITE( nout, fmt = 9989 )path
1021 ELSE IF(
lsamen( 2, c2,
'HH' ) )
THEN
1026 CALL schkorhr_col( thresh, tsterr, nm, mval, nn, nval, nnb,
1029 WRITE( nout, fmt = 9989 ) path
1034 WRITE( nout, fmt = 9990 )path
1046 WRITE( nout, fmt = 9998 )
1047 WRITE( nout, fmt = 9997 )s2 - s1
1049 DEALLOCATE (a, stat = allocatestatus)
1050 DEALLOCATE (b, stat = allocatestatus)
1051 DEALLOCATE (work, stat = allocatestatus)
1052 DEALLOCATE (rwork, stat = allocatestatus)
1054 9999
FORMAT( /
' Execution not attempted due to input errors' )
1055 9998
FORMAT( /
' End of tests' )
1056 9997
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
1057 9996
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be >=',
1059 9995
FORMAT(
' Invalid input value: ', a4,
'=', i6,
'; must be <=',
1061 9994
FORMAT(
' Tests of the REAL LAPACK routines ',
1062 $ /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1,
1063 $ / /
' The following parameter values will be used:' )
1064 9993
FORMAT( 4x, a4,
': ', 10i6, / 11x, 10i6 )
1065 9992
FORMAT( /
' Routines pass computational tests if test ratio is ',
1066 $
'less than', f8.2, / )
1067 9991
FORMAT(
' Relative machine ', a,
' is taken to be', e16.6 )
1068 9990
FORMAT( / 1x, a3,
': Unrecognized path name' )
1069 9989
FORMAT( / 1x, a3,
' routines were not tested' )
1070 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 schklqt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
SCHKLQT
subroutine schksy_rk(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKSY_RK
subroutine schktsqr(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
SCHKQRT
subroutine schklqtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
SCHKLQTP
subroutine sdrvsy_rook(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SDRVSY_ROOK
subroutine schktp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AP, AINVP, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKTP
subroutine schktz(DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A, COPYA, S, TAU, WORK, NOUT)
SCHKTZ
subroutine sdrvsp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SDRVSP
subroutine schksy(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKSY
subroutine schkgt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKGT
subroutine schkpo(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKPO
subroutine schkqrt(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
SCHKQRT
subroutine schkorhr_col(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
SCHKORHR_COL
subroutine schkqrtp(THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, NBVAL, NOUT)
SCHKQRTP
subroutine schkq3(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, THRESH, A, COPYA, S, TAU, WORK, IWORK, NOUT)
SCHKQ3
subroutine schkeq(THRESH, NOUT)
SCHKEQ
subroutine sdrvpo(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
SDRVPO
subroutine sdrvgt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, AF, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SDRVGT
subroutine sdrvls(DOTYPE, NM, MVAL, NN, NVAL, NNS, NSVAL, NNB, NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B, COPYB, C, S, COPYS, NOUT)
SDRVLS
subroutine schktb(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, AB, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKTB
subroutine schksp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKSP
subroutine sdrvsy_rk(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, E, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SDRVSY_RK
subroutine sdrvsy(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SDRVSY
subroutine schkps(DOTYPE, NN, NVAL, NNB, NBVAL, NRANK, RANKVAL, THRESH, TSTERR, NMAX, A, AFAC, PERM, PIV, WORK, RWORK, NOUT)
SCHKPS
subroutine sdrvgb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, LA, AFB, LAFB, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
SDRVGB
subroutine schkgb(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, A, LA, AFAC, LAFAC, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKGB
subroutine schkpb(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKPB
subroutine schklq(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
SCHKLQ
subroutine sdrvge(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
SDRVGE
subroutine sdrvpb(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
SDRVPB
subroutine schkge(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKGE
subroutine schkpp(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKPP
subroutine schkpt(DOTYPE, NN, NVAL, NNS, NSVAL, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
SCHKPT
subroutine sdrvpp(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK, RWORK, IWORK, NOUT)
SDRVPP
subroutine schkrq(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)
SCHKRQ
subroutine schksy_rook(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKSY_ROOK
subroutine schkqr(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)
SCHKQR
subroutine schktr(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKTR
subroutine sdrvpt(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, A, D, E, B, X, XACT, WORK, RWORK, NOUT)
SDRVPT
subroutine schkql(DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL, NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AL, AC, B, X, XACT, TAU, WORK, RWORK, NOUT)
SCHKQL
subroutine ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
subroutine schksy_aa(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKSY_AA
subroutine schksy_aa_2stage(DOTYPE, NN, NVAL, NNB, NBVAL, NNS, NSVAL, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SCHKSY_AA_2STAGE
subroutine sdrvsy_aa(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SDRVSY_AA
subroutine sdrvsy_aa_2stage(DOTYPE, NN, NVAL, NRHS, THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT)
SDRVSY_AA_2STAGE
real function second()
SECOND Using ETIME
real function slamch(CMACH)
SLAMCH