1053 parameter( nmax = 132 )
1055 parameter( ncmax = 20 )
1057 parameter( need = 14 )
1059 parameter( lwork = nmax*( 5*nmax+5 )+1 )
1061 parameter( liwork = nmax*( 5*nmax+20 ) )
1063 parameter( maxin = 20 )
1065 parameter( maxt = 30 )
1067 parameter( nin = 5, nout = 6 )
1070 LOGICAL csd, fatal, glm, gqr, gsv,
lse, nep, sbb, sbk,
1071 $ sbl, sep, ses, sev, sgg, sgk, sgl, sgs, sgv,
1072 $ sgx, ssb, ssx, svd, svx, sxv, tstchk, tstdif,
1075 CHARACTER*3 c3, path
1079 INTEGER i, i1, ic, info, itmp, k, lenp, maxtyp, newsd,
1080 $ nk, nn, nparms, nrhs, ntypes,
1081 $ vers_major, vers_minor, vers_patch
1082 INTEGER*4 n_threads, one_thread
1083 REAL eps, s1, s2, thresh, thrshn
1086 LOGICAL dotype( maxt ), logwrk( nmax )
1087 INTEGER ioldsd( 4 ), iseed( 4 ), iwork( liwork ),
1088 $ kval( maxin ), mval( maxin ), mxbval( maxin ),
1089 $ nbcol( maxin ), nbmin( maxin ), nbval( maxin ),
1090 $ nsval( maxin ), nval( maxin ), nxval( maxin ),
1092 INTEGER inmin( maxin ), inwin( maxin ), inibl( maxin ),
1093 $ ishfts( maxin ), iacc22( maxin )
1094 REAL d( nmax, 12 ), result( 500 ), taua( nmax ),
1095 $ taub( nmax ), x( 5*nmax )
1098 INTEGER allocatestatus
1099 REAL,
DIMENSION(:),
ALLOCATABLE :: work
1100 REAL,
DIMENSION(:,:),
ALLOCATABLE :: a, b, c
1123 INTEGER infot, maxb, nproc, nshift, nunit, seldim,
1127 LOGICAL selval( 20 )
1128 INTEGER iparms( 100 )
1129 REAL selwi( 20 ), selwr( 20 )
1132 COMMON / cenvir / nproc, nshift, maxb
1133 COMMON / claenv / iparms
1134 COMMON / infoc / infot, nunit, ok, lerr
1135 COMMON / srnamc / srnamt
1136 COMMON / sslct / selopt, seldim, selval, selwr, selwi
1139 DATA intstr /
'0123456789' /
1140 DATA ioldsd / 0, 0, 0, 1 /
1144 ALLOCATE ( a(nmax*nmax,need), stat = allocatestatus )
1145 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1146 ALLOCATE ( b(nmax*nmax,5), stat = allocatestatus )
1147 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1148 ALLOCATE ( c(ncmax*ncmax,ncmax*ncmax), stat = allocatestatus )
1149 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1150 ALLOCATE ( work(lwork), stat = allocatestatus )
1151 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1169 READ( nin, fmt =
'(A80)',
END = 380 )line
1171 nep =
lsamen( 3, path,
'NEP' ) .OR.
lsamen( 3, path,
'SHS' )
1172 sep =
lsamen( 3, path,
'SEP' ) .OR.
lsamen( 3, path,
'SST' ) .OR.
1173 $
lsamen( 3, path,
'SSG' ) .OR.
lsamen( 3, path,
'SE2' )
1174 svd =
lsamen( 3, path,
'SVD' ) .OR.
lsamen( 3, path,
'DBD' )
1175 svd =
lsamen( 3, path,
'SVD' ) .OR.
lsamen( 3, path,
'SBD' )
1176 sev =
lsamen( 3, path,
'SEV' )
1177 ses =
lsamen( 3, path,
'SES' )
1178 svx =
lsamen( 3, path,
'SVX' )
1179 ssx =
lsamen( 3, path,
'SSX' )
1180 sgg =
lsamen( 3, path,
'SGG' )
1181 sgs =
lsamen( 3, path,
'SGS' )
1182 sgx =
lsamen( 3, path,
'SGX' )
1183 sgv =
lsamen( 3, path,
'SGV' )
1184 sxv =
lsamen( 3, path,
'SXV' )
1185 ssb =
lsamen( 3, path,
'SSB' )
1186 sbb =
lsamen( 3, path,
'SBB' )
1187 glm =
lsamen( 3, path,
'GLM' )
1188 gqr =
lsamen( 3, path,
'GQR' ) .OR.
lsamen( 3, path,
'GRQ' )
1189 gsv =
lsamen( 3, path,
'GSV' )
1190 csd =
lsamen( 3, path,
'CSD' )
1192 sbl =
lsamen( 3, path,
'SBL' )
1193 sbk =
lsamen( 3, path,
'SBK' )
1194 sgl =
lsamen( 3, path,
'SGL' )
1195 sgk =
lsamen( 3, path,
'SGK' )
1199 IF( path.EQ.
' ' )
THEN
1202 WRITE( nout, fmt = 9987 )
1204 WRITE( nout, fmt = 9986 )
1206 WRITE( nout, fmt = 9985 )
1208 WRITE( nout, fmt = 9979 )
1210 WRITE( nout, fmt = 9978 )
1212 WRITE( nout, fmt = 9977 )
1214 WRITE( nout, fmt = 9976 )
1216 WRITE( nout, fmt = 9975 )
1218 WRITE( nout, fmt = 9964 )
1220 WRITE( nout, fmt = 9965 )
1222 WRITE( nout, fmt = 9963 )
1224 WRITE( nout, fmt = 9962 )
1226 WRITE( nout, fmt = 9974 )
1228 WRITE( nout, fmt = 9967 )
1230 WRITE( nout, fmt = 9971 )
1232 WRITE( nout, fmt = 9970 )
1234 WRITE( nout, fmt = 9969 )
1236 WRITE( nout, fmt = 9960 )
1238 WRITE( nout, fmt = 9968 )
1263 ELSE IF(
lsamen( 3, path,
'SEC' ) )
THEN
1267 READ( nin, fmt = * )thresh
1275 CALL schkec( thresh, tsterr, nin, nout )
1278 WRITE( nout, fmt = 9992 )path
1281 CALL ilaver( vers_major, vers_minor, vers_patch )
1282 WRITE( nout, fmt = 9972 ) vers_major, vers_minor, vers_patch
1283 WRITE( nout, fmt = 9984 )
1287 READ( nin, fmt = * )nn
1289 WRITE( nout, fmt = 9989 )
' NN ', nn, 1
1292 ELSE IF( nn.GT.maxin )
THEN
1293 WRITE( nout, fmt = 9988 )
' NN ', nn, maxin
1300 IF( .NOT.( sgx .OR. sxv ) )
THEN
1301 READ( nin, fmt = * )( mval( i ), i = 1, nn )
1308 IF( mval( i ).LT.0 )
THEN
1309 WRITE( nout, fmt = 9989 )vname, mval( i ), 0
1311 ELSE IF( mval( i ).GT.nmax )
THEN
1312 WRITE( nout, fmt = 9988 )vname, mval( i ), nmax
1316 WRITE( nout, fmt = 9983 )
'M: ', ( mval( i ), i = 1, nn )
1321 IF( glm .OR. gqr .OR. gsv .OR. csd .OR.
lse )
THEN
1322 READ( nin, fmt = * )( pval( i ), i = 1, nn )
1324 IF( pval( i ).LT.0 )
THEN
1325 WRITE( nout, fmt = 9989 )
' P ', pval( i ), 0
1327 ELSE IF( pval( i ).GT.nmax )
THEN
1328 WRITE( nout, fmt = 9988 )
' P ', pval( i ), nmax
1332 WRITE( nout, fmt = 9983 )
'P: ', ( pval( i ), i = 1, nn )
1337 IF( svd .OR. sbb .OR. glm .OR. gqr .OR. gsv .OR. csd .OR.
1339 READ( nin, fmt = * )( nval( i ), i = 1, nn )
1341 IF( nval( i ).LT.0 )
THEN
1342 WRITE( nout, fmt = 9989 )
' N ', nval( i ), 0
1344 ELSE IF( nval( i ).GT.nmax )
THEN
1345 WRITE( nout, fmt = 9988 )
' N ', nval( i ), nmax
1351 nval( i ) = mval( i )
1354 IF( .NOT.( sgx .OR. sxv ) )
THEN
1355 WRITE( nout, fmt = 9983 )
'N: ', ( nval( i ), i = 1, nn )
1357 WRITE( nout, fmt = 9983 )
'N: ', nn
1362 IF( ssb .OR. sbb )
THEN
1363 READ( nin, fmt = * )nk
1364 READ( nin, fmt = * )( kval( i ), i = 1, nk )
1366 IF( kval( i ).LT.0 )
THEN
1367 WRITE( nout, fmt = 9989 )
' K ', kval( i ), 0
1369 ELSE IF( kval( i ).GT.nmax )
THEN
1370 WRITE( nout, fmt = 9988 )
' K ', kval( i ), nmax
1374 WRITE( nout, fmt = 9983 )
'K: ', ( kval( i ), i = 1, nk )
1377 IF( sev .OR. ses .OR. svx .OR. ssx )
THEN
1382 READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1383 $ inmin( 1 ), inwin( 1 ), inibl(1), ishfts(1), iacc22(1)
1384 IF( nbval( 1 ).LT.1 )
THEN
1385 WRITE( nout, fmt = 9989 )
' NB ', nbval( 1 ), 1
1387 ELSE IF( nbmin( 1 ).LT.1 )
THEN
1388 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( 1 ), 1
1390 ELSE IF( nxval( 1 ).LT.1 )
THEN
1391 WRITE( nout, fmt = 9989 )
' NX ', nxval( 1 ), 1
1393 ELSE IF( inmin( 1 ).LT.1 )
THEN
1394 WRITE( nout, fmt = 9989 )
' INMIN ', inmin( 1 ), 1
1396 ELSE IF( inwin( 1 ).LT.1 )
THEN
1397 WRITE( nout, fmt = 9989 )
' INWIN ', inwin( 1 ), 1
1399 ELSE IF( inibl( 1 ).LT.1 )
THEN
1400 WRITE( nout, fmt = 9989 )
' INIBL ', inibl( 1 ), 1
1402 ELSE IF( ishfts( 1 ).LT.1 )
THEN
1403 WRITE( nout, fmt = 9989 )
' ISHFTS ', ishfts( 1 ), 1
1405 ELSE IF( iacc22( 1 ).LT.0 )
THEN
1406 WRITE( nout, fmt = 9989 )
' IACC22 ', iacc22( 1 ), 0
1409 CALL xlaenv( 1, nbval( 1 ) )
1410 CALL xlaenv( 2, nbmin( 1 ) )
1411 CALL xlaenv( 3, nxval( 1 ) )
1412 CALL xlaenv(12, max( 11, inmin( 1 ) ) )
1413 CALL xlaenv(13, inwin( 1 ) )
1414 CALL xlaenv(14, inibl( 1 ) )
1415 CALL xlaenv(15, ishfts( 1 ) )
1416 CALL xlaenv(16, iacc22( 1 ) )
1417 WRITE( nout, fmt = 9983 )
'NB: ', nbval( 1 )
1418 WRITE( nout, fmt = 9983 )
'NBMIN:', nbmin( 1 )
1419 WRITE( nout, fmt = 9983 )
'NX: ', nxval( 1 )
1420 WRITE( nout, fmt = 9983 )
'INMIN: ', inmin( 1 )
1421 WRITE( nout, fmt = 9983 )
'INWIN: ', inwin( 1 )
1422 WRITE( nout, fmt = 9983 )
'INIBL: ', inibl( 1 )
1423 WRITE( nout, fmt = 9983 )
'ISHFTS: ', ishfts( 1 )
1424 WRITE( nout, fmt = 9983 )
'IACC22: ', iacc22( 1 )
1426 ELSE IF( sgs .OR. sgx .OR. sgv .OR. sxv )
THEN
1431 READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1432 $ nsval( 1 ), mxbval( 1 )
1433 IF( nbval( 1 ).LT.1 )
THEN
1434 WRITE( nout, fmt = 9989 )
' NB ', nbval( 1 ), 1
1436 ELSE IF( nbmin( 1 ).LT.1 )
THEN
1437 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( 1 ), 1
1439 ELSE IF( nxval( 1 ).LT.1 )
THEN
1440 WRITE( nout, fmt = 9989 )
' NX ', nxval( 1 ), 1
1442 ELSE IF( nsval( 1 ).LT.2 )
THEN
1443 WRITE( nout, fmt = 9989 )
' NS ', nsval( 1 ), 2
1445 ELSE IF( mxbval( 1 ).LT.1 )
THEN
1446 WRITE( nout, fmt = 9989 )
' MAXB ', mxbval( 1 ), 1
1449 CALL xlaenv( 1, nbval( 1 ) )
1450 CALL xlaenv( 2, nbmin( 1 ) )
1451 CALL xlaenv( 3, nxval( 1 ) )
1452 CALL xlaenv( 4, nsval( 1 ) )
1453 CALL xlaenv( 8, mxbval( 1 ) )
1454 WRITE( nout, fmt = 9983 )
'NB: ', nbval( 1 )
1455 WRITE( nout, fmt = 9983 )
'NBMIN:', nbmin( 1 )
1456 WRITE( nout, fmt = 9983 )
'NX: ', nxval( 1 )
1457 WRITE( nout, fmt = 9983 )
'NS: ', nsval( 1 )
1458 WRITE( nout, fmt = 9983 )
'MAXB: ', mxbval( 1 )
1460 ELSE IF( .NOT.ssb .AND. .NOT.glm .AND. .NOT.gqr .AND. .NOT.
1461 $ gsv .AND. .NOT.csd .AND. .NOT.
lse )
THEN
1466 READ( nin, fmt = * )nparms
1467 IF( nparms.LT.1 )
THEN
1468 WRITE( nout, fmt = 9989 )
'NPARMS', nparms, 1
1471 ELSE IF( nparms.GT.maxin )
THEN
1472 WRITE( nout, fmt = 9988 )
'NPARMS', nparms, maxin
1480 READ( nin, fmt = * )( nbval( i ), i = 1, nparms )
1482 IF( nbval( i ).LT.0 )
THEN
1483 WRITE( nout, fmt = 9989 )
' NB ', nbval( i ), 0
1485 ELSE IF( nbval( i ).GT.nmax )
THEN
1486 WRITE( nout, fmt = 9988 )
' NB ', nbval( i ), nmax
1490 WRITE( nout, fmt = 9983 )
'NB: ',
1491 $ ( nbval( i ), i = 1, nparms )
1496 IF( nep .OR. sep .OR. svd .OR. sgg )
THEN
1497 READ( nin, fmt = * )( nbmin( i ), i = 1, nparms )
1499 IF( nbmin( i ).LT.0 )
THEN
1500 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( i ), 0
1502 ELSE IF( nbmin( i ).GT.nmax )
THEN
1503 WRITE( nout, fmt = 9988 )
'NBMIN ', nbmin( i ), nmax
1507 WRITE( nout, fmt = 9983 )
'NBMIN:',
1508 $ ( nbmin( i ), i = 1, nparms )
1517 IF( nep .OR. sep .OR. svd )
THEN
1518 READ( nin, fmt = * )( nxval( i ), i = 1, nparms )
1519 DO 100 i = 1, nparms
1520 IF( nxval( i ).LT.0 )
THEN
1521 WRITE( nout, fmt = 9989 )
' NX ', nxval( i ), 0
1523 ELSE IF( nxval( i ).GT.nmax )
THEN
1524 WRITE( nout, fmt = 9988 )
' NX ', nxval( i ), nmax
1528 WRITE( nout, fmt = 9983 )
'NX: ',
1529 $ ( nxval( i ), i = 1, nparms )
1531 DO 110 i = 1, nparms
1539 IF( svd .OR. sbb .OR. sgg )
THEN
1540 READ( nin, fmt = * )( nsval( i ), i = 1, nparms )
1541 DO 120 i = 1, nparms
1542 IF( nsval( i ).LT.0 )
THEN
1543 WRITE( nout, fmt = 9989 )
' NS ', nsval( i ), 0
1545 ELSE IF( nsval( i ).GT.nmax )
THEN
1546 WRITE( nout, fmt = 9988 )
' NS ', nsval( i ), nmax
1550 WRITE( nout, fmt = 9983 )
'NS: ',
1551 $ ( nsval( i ), i = 1, nparms )
1553 DO 130 i = 1, nparms
1561 READ( nin, fmt = * )( mxbval( i ), i = 1, nparms )
1562 DO 140 i = 1, nparms
1563 IF( mxbval( i ).LT.0 )
THEN
1564 WRITE( nout, fmt = 9989 )
' MAXB ', mxbval( i ), 0
1566 ELSE IF( mxbval( i ).GT.nmax )
THEN
1567 WRITE( nout, fmt = 9988 )
' MAXB ', mxbval( i ), nmax
1571 WRITE( nout, fmt = 9983 )
'MAXB: ',
1572 $ ( mxbval( i ), i = 1, nparms )
1574 DO 150 i = 1, nparms
1582 READ( nin, fmt = * )( inmin( i ), i = 1, nparms )
1583 DO 540 i = 1, nparms
1584 IF( inmin( i ).LT.0 )
THEN
1585 WRITE( nout, fmt = 9989 )
' INMIN ', inmin( i ), 0
1589 WRITE( nout, fmt = 9983 )
'INMIN: ',
1590 $ ( inmin( i ), i = 1, nparms )
1592 DO 550 i = 1, nparms
1600 READ( nin, fmt = * )( inwin( i ), i = 1, nparms )
1601 DO 560 i = 1, nparms
1602 IF( inwin( i ).LT.0 )
THEN
1603 WRITE( nout, fmt = 9989 )
' INWIN ', inwin( i ), 0
1607 WRITE( nout, fmt = 9983 )
'INWIN: ',
1608 $ ( inwin( i ), i = 1, nparms )
1610 DO 570 i = 1, nparms
1618 READ( nin, fmt = * )( inibl( i ), i = 1, nparms )
1619 DO 580 i = 1, nparms
1620 IF( inibl( i ).LT.0 )
THEN
1621 WRITE( nout, fmt = 9989 )
' INIBL ', inibl( i ), 0
1625 WRITE( nout, fmt = 9983 )
'INIBL: ',
1626 $ ( inibl( i ), i = 1, nparms )
1628 DO 590 i = 1, nparms
1636 READ( nin, fmt = * )( ishfts( i ), i = 1, nparms )
1637 DO 600 i = 1, nparms
1638 IF( ishfts( i ).LT.0 )
THEN
1639 WRITE( nout, fmt = 9989 )
' ISHFTS ', ishfts( i ), 0
1643 WRITE( nout, fmt = 9983 )
'ISHFTS: ',
1644 $ ( ishfts( i ), i = 1, nparms )
1646 DO 610 i = 1, nparms
1653 IF( nep .OR. sgg )
THEN
1654 READ( nin, fmt = * )( iacc22( i ), i = 1, nparms )
1655 DO 620 i = 1, nparms
1656 IF( iacc22( i ).LT.0 )
THEN
1657 WRITE( nout, fmt = 9989 )
' IACC22 ', iacc22( i ), 0
1661 WRITE( nout, fmt = 9983 )
'IACC22: ',
1662 $ ( iacc22( i ), i = 1, nparms )
1664 DO 630 i = 1, nparms
1672 READ( nin, fmt = * )( nbcol( i ), i = 1, nparms )
1673 DO 160 i = 1, nparms
1674 IF( nbcol( i ).LT.0 )
THEN
1675 WRITE( nout, fmt = 9989 )
'NBCOL ', nbcol( i ), 0
1677 ELSE IF( nbcol( i ).GT.nmax )
THEN
1678 WRITE( nout, fmt = 9988 )
'NBCOL ', nbcol( i ), nmax
1682 WRITE( nout, fmt = 9983 )
'NBCOL:',
1683 $ ( nbcol( i ), i = 1, nparms )
1685 DO 170 i = 1, nparms
1693 WRITE( nout, fmt = * )
1694 eps =
slamch(
'Underflow threshold' )
1695 WRITE( nout, fmt = 9981 )
'underflow', eps
1696 eps =
slamch(
'Overflow threshold' )
1697 WRITE( nout, fmt = 9981 )
'overflow ', eps
1698 eps =
slamch(
'Epsilon' )
1699 WRITE( nout, fmt = 9981 )
'precision', eps
1703 READ( nin, fmt = * )thresh
1704 WRITE( nout, fmt = 9982 )thresh
1705 IF( sep .OR. svd .OR. sgg )
THEN
1709 READ( nin, fmt = * )tstchk
1713 READ( nin, fmt = * )tstdrv
1718 READ( nin, fmt = * )tsterr
1722 READ( nin, fmt = * )newsd
1727 $
READ( nin, fmt = * )( ioldsd( i ), i = 1, 4 )
1730 iseed( i ) = ioldsd( i )
1734 WRITE( nout, fmt = 9999 )
1745 IF( .NOT.( sgx .OR. sxv ) )
THEN
1748 READ( nin, fmt =
'(A80)',
END = 380 )line
1756 IF( i.GT.lenp )
THEN
1764 IF( line( i: i ).NE.
' ' .AND. line( i: i ).NE.
',' )
THEN
1771 IF( c1.EQ.intstr( k: k ) )
THEN
1776 WRITE( nout, fmt = 9991 )i, line
1781 ELSE IF( i1.GT.0 )
THEN
1791 IF( .NOT.( sev .OR. ses .OR. svx .OR. ssx .OR. sgv .OR.
1792 $ sgs ) .AND. ntypes.LE.0 )
THEN
1793 WRITE( nout, fmt = 9990 )c3
1806 IF( newsd.EQ.0 )
THEN
1808 iseed( k ) = ioldsd( k )
1812 IF(
lsamen( 3, c3,
'SHS' ) .OR.
lsamen( 3, c3,
'NEP' ) )
THEN
1825 ntypes = min( maxtyp, ntypes )
1826 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1829 $
CALL serrhs(
'SHSEQR', nout )
1830 DO 270 i = 1, nparms
1831 CALL xlaenv( 1, nbval( i ) )
1832 CALL xlaenv( 2, nbmin( i ) )
1833 CALL xlaenv( 3, nxval( i ) )
1834 CALL xlaenv(12, max( 11, inmin( i ) ) )
1835 CALL xlaenv(13, inwin( i ) )
1836 CALL xlaenv(14, inibl( i ) )
1837 CALL xlaenv(15, ishfts( i ) )
1838 CALL xlaenv(16, iacc22( i ) )
1840 IF( newsd.EQ.0 )
THEN
1842 iseed( k ) = ioldsd( k )
1845 WRITE( nout, fmt = 9961 )c3, nbval( i ), nbmin( i ),
1846 $ nxval( i ), max( 11, inmin(i)),
1847 $ inwin( i ), inibl( i ), ishfts( i ), iacc22( i )
1848 CALL schkhs( nn, nval, maxtyp, dotype, iseed, thresh, nout,
1849 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
1850 $ a( 1, 4 ), a( 1, 5 ), nmax, a( 1, 6 ),
1851 $ a( 1, 7 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
1852 $ d( 1, 4 ), d( 1, 5 ), d( 1, 6 ), a( 1, 8 ),
1853 $ a( 1, 9 ), a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
1854 $ d( 1, 7 ), work, lwork, iwork, logwrk, result,
1857 $
WRITE( nout, fmt = 9980 )
'SCHKHS', info
1860 ELSE IF(
lsamen( 3, c3,
'SST' ) .OR.
lsamen( 3, c3,
'SEP' )
1861 $ .OR.
lsamen( 3, c3,
'SE2' ) )
THEN
1872 ntypes = min( maxtyp, ntypes )
1873 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1878 n_threads = omp_get_max_threads()
1880 CALL omp_set_num_threads(one_thread)
1882 CALL serrst(
'SST', nout )
1884 CALL omp_set_num_threads(n_threads)
1887 DO 290 i = 1, nparms
1888 CALL xlaenv( 1, nbval( i ) )
1889 CALL xlaenv( 2, nbmin( i ) )
1890 CALL xlaenv( 3, nxval( i ) )
1892 IF( newsd.EQ.0 )
THEN
1894 iseed( k ) = ioldsd( k )
1897 WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1900 IF(
lsamen( 3, c3,
'SE2' ) )
THEN
1901 CALL schkst2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1902 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
1903 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
1904 $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
1905 $ d( 1, 10 ), d( 1, 11 ), a( 1, 3 ), nmax,
1906 $ a( 1, 4 ), a( 1, 5 ), d( 1, 12 ), a( 1, 6 ),
1907 $ work, lwork, iwork, liwork, result, info )
1909 CALL schkst( nn, nval, maxtyp, dotype, iseed, thresh,
1910 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
1911 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
1912 $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
1913 $ d( 1, 10 ), d( 1, 11 ), a( 1, 3 ), nmax,
1914 $ a( 1, 4 ), a( 1, 5 ), d( 1, 12 ), a( 1, 6 ),
1915 $ work, lwork, iwork, liwork, result, info )
1918 $
WRITE( nout, fmt = 9980 )
'SCHKST', info
1921 IF(
lsamen( 3, c3,
'SE2' ) )
THEN
1922 CALL sdrvst2stg( nn, nval, 18, dotype, iseed, thresh,
1923 $ nout, a( 1, 1 ), nmax, d( 1, 3 ), d( 1, 4 ),
1924 $ d( 1, 5 ), d( 1, 6 ), d( 1, 8 ), d( 1, 9 ),
1925 $ d( 1, 10 ), d( 1, 11), a( 1, 2 ), nmax,
1926 $ a( 1, 3 ), d( 1, 12 ), a( 1, 4 ), work,
1927 $ lwork, iwork, liwork, result, info )
1929 CALL sdrvst( nn, nval, 18, dotype, iseed, thresh,
1930 $ nout, a( 1, 1 ), nmax, d( 1, 3 ), d( 1, 4 ),
1931 $ d( 1, 5 ), d( 1, 6 ), d( 1, 8 ), d( 1, 9 ),
1932 $ d( 1, 10 ), d( 1, 11), a( 1, 2 ), nmax,
1933 $ a( 1, 3 ), d( 1, 12 ), a( 1, 4 ), work,
1934 $ lwork, iwork, liwork, result, info )
1937 $
WRITE( nout, fmt = 9980 )
'SDRVST', info
1941 ELSE IF(
lsamen( 3, c3,
'SSG' ) )
THEN
1952 ntypes = min( maxtyp, ntypes )
1953 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1955 DO 310 i = 1, nparms
1956 CALL xlaenv( 1, nbval( i ) )
1957 CALL xlaenv( 2, nbmin( i ) )
1958 CALL xlaenv( 3, nxval( i ) )
1960 IF( newsd.EQ.0 )
THEN
1962 iseed( k ) = ioldsd( k )
1965 WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1973 CALL sdrvsg2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1974 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
1975 $ d( 1, 3 ), d( 1, 3 ), a( 1, 3 ), nmax,
1976 $ a( 1, 4 ), a( 1, 5 ), a( 1, 6 ),
1977 $ a( 1, 7 ), work, lwork, iwork, liwork,
1980 $
WRITE( nout, fmt = 9980 )
'SDRVSG', info
1984 ELSE IF(
lsamen( 3, c3,
'SBD' ) .OR.
lsamen( 3, c3,
'SVD' ) )
THEN
1996 ntypes = min( maxtyp, ntypes )
1997 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2003 IF( tsterr .AND. tstchk )
2004 $
CALL serrbd(
'SBD', nout )
2005 IF( tsterr .AND. tstdrv )
2006 $
CALL serred(
'SBD', nout )
2008 DO 330 i = 1, nparms
2010 CALL xlaenv( 1, nbval( i ) )
2011 CALL xlaenv( 2, nbmin( i ) )
2012 CALL xlaenv( 3, nxval( i ) )
2013 IF( newsd.EQ.0 )
THEN
2015 iseed( k ) = ioldsd( k )
2018 WRITE( nout, fmt = 9995 )c3, nbval( i ), nbmin( i ),
2021 CALL schkbd( nn, mval, nval, maxtyp, dotype, nrhs, iseed,
2022 $ thresh, a( 1, 1 ), nmax, d( 1, 1 ),
2023 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 2 ),
2024 $ nmax, a( 1, 3 ), a( 1, 4 ), a( 1, 5 ), nmax,
2025 $ a( 1, 6 ), nmax, a( 1, 7 ), a( 1, 8 ), work,
2026 $ lwork, iwork, nout, info )
2028 $
WRITE( nout, fmt = 9980 )
'SCHKBD', info
2031 $
CALL sdrvbd( nn, mval, nval, maxtyp, dotype, iseed,
2032 $ thresh, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
2033 $ a( 1, 3 ), nmax, a( 1, 4 ), a( 1, 5 ),
2034 $ a( 1, 6 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
2035 $ work, lwork, iwork, nout, info )
2038 ELSE IF(
lsamen( 3, c3,
'SEV' ) )
THEN
2046 ntypes = min( maxtyp, ntypes )
2047 IF( ntypes.LE.0 )
THEN
2048 WRITE( nout, fmt = 9990 )c3
2051 $
CALL serred( c3, nout )
2052 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2053 CALL sdrvev( nn, nval, ntypes, dotype, iseed, thresh, nout,
2054 $ a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
2055 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 3 ),
2056 $ nmax, a( 1, 4 ), nmax, a( 1, 5 ), nmax, result,
2057 $ work, lwork, iwork, info )
2059 $
WRITE( nout, fmt = 9980 )
'SGEEV', info
2061 WRITE( nout, fmt = 9973 )
2064 ELSE IF(
lsamen( 3, c3,
'SES' ) )
THEN
2072 ntypes = min( maxtyp, ntypes )
2073 IF( ntypes.LE.0 )
THEN
2074 WRITE( nout, fmt = 9990 )c3
2077 $
CALL serred( c3, nout )
2078 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2079 CALL sdrves( nn, nval, ntypes, dotype, iseed, thresh, nout,
2080 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2081 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2082 $ a( 1, 4 ), nmax, result, work, lwork, iwork,
2085 $
WRITE( nout, fmt = 9980 )
'SGEES', info
2087 WRITE( nout, fmt = 9973 )
2090 ELSE IF(
lsamen( 3, c3,
'SVX' ) )
THEN
2098 ntypes = min( maxtyp, ntypes )
2099 IF( ntypes.LT.0 )
THEN
2100 WRITE( nout, fmt = 9990 )c3
2103 $
CALL serred( c3, nout )
2104 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2105 CALL sdrvvx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2106 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
2107 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 3 ),
2108 $ nmax, a( 1, 4 ), nmax, a( 1, 5 ), nmax,
2109 $ d( 1, 5 ), d( 1, 6 ), d( 1, 7 ), d( 1, 8 ),
2110 $ d( 1, 9 ), d( 1, 10 ), d( 1, 11 ), d( 1, 12 ),
2111 $ result, work, lwork, iwork, info )
2113 $
WRITE( nout, fmt = 9980 )
'SGEEVX', info
2115 WRITE( nout, fmt = 9973 )
2118 ELSE IF(
lsamen( 3, c3,
'SSX' ) )
THEN
2126 ntypes = min( maxtyp, ntypes )
2127 IF( ntypes.LT.0 )
THEN
2128 WRITE( nout, fmt = 9990 )c3
2131 $
CALL serred( c3, nout )
2132 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2133 CALL sdrvsx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2134 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2135 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2136 $ d( 1, 5 ), d( 1, 6 ), a( 1, 4 ), nmax,
2137 $ a( 1, 5 ), result, work, lwork, iwork, logwrk,
2140 $
WRITE( nout, fmt = 9980 )
'SGEESX', info
2142 WRITE( nout, fmt = 9973 )
2145 ELSE IF(
lsamen( 3, c3,
'SGG' ) )
THEN
2159 ntypes = min( maxtyp, ntypes )
2160 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2162 IF( tstchk .AND. tsterr )
2163 &
CALL serrgg( c3, nout )
2164 DO 350 i = 1, nparms
2165 CALL xlaenv( 1, nbval( i ) )
2166 CALL xlaenv( 2, nbmin( i ) )
2167 CALL xlaenv( 4, nsval( i ) )
2168 CALL xlaenv( 8, mxbval( i ) )
2169 CALL xlaenv( 16, iacc22( i ) )
2170 CALL xlaenv( 5, nbcol( i ) )
2172 IF( newsd.EQ.0 )
THEN
2174 iseed( k ) = ioldsd( k )
2177 WRITE( nout, fmt = 9996 )c3, nbval( i ), nbmin( i ),
2178 $ nsval( i ), mxbval( i ), iacc22( i ), nbcol( i )
2182 CALL schkgg( nn, nval, maxtyp, dotype, iseed, thresh,
2183 $ tstdif, thrshn, nout, a( 1, 1 ), nmax,
2184 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2185 $ a( 1, 6 ), a( 1, 7 ), a( 1, 8 ), a( 1, 9 ),
2186 $ nmax, a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
2187 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2188 $ d( 1, 5 ), d( 1, 6 ), a( 1, 13 ),
2189 $ a( 1, 14 ), work, lwork, logwrk, result,
2192 $
WRITE( nout, fmt = 9980 )
'SCHKGG', info
2196 ELSE IF(
lsamen( 3, c3,
'SGS' ) )
THEN
2204 ntypes = min( maxtyp, ntypes )
2205 IF( ntypes.LE.0 )
THEN
2206 WRITE( nout, fmt = 9990 )c3
2209 $
CALL serrgg( c3, nout )
2210 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2211 CALL sdrges( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2212 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2213 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2214 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), work, lwork,
2215 $ result, logwrk, info )
2218 $
WRITE( nout, fmt = 9980 )
'SDRGES', info
2223 CALL sdrges3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2224 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2225 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2226 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), work, lwork,
2227 $ result, logwrk, info )
2230 $
WRITE( nout, fmt = 9980 )
'SDRGES3', info
2232 WRITE( nout, fmt = 9973 )
2245 WRITE( nout, fmt = 9990 )c3
2248 $
CALL serrgg( c3, nout )
2249 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2251 CALL sdrgsx( nn, ncmax, thresh, nin, nout, a( 1, 1 ), nmax,
2252 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2253 $ a( 1, 6 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
2254 $ c( 1, 1 ), ncmax*ncmax, a( 1, 12 ), work,
2255 $ lwork, iwork, liwork, logwrk, info )
2257 $
WRITE( nout, fmt = 9980 )
'SDRGSX', info
2259 WRITE( nout, fmt = 9973 )
2262 ELSE IF(
lsamen( 3, c3,
'SGV' ) )
THEN
2270 ntypes = min( maxtyp, ntypes )
2271 IF( ntypes.LE.0 )
THEN
2272 WRITE( nout, fmt = 9990 )c3
2275 $
CALL serrgg( c3, nout )
2276 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2277 CALL sdrgev( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2278 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2279 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2280 $ a( 1, 9 ), nmax, d( 1, 1 ), d( 1, 2 ),
2281 $ d( 1, 3 ), d( 1, 4 ), d( 1, 5 ), d( 1, 6 ),
2282 $ work, lwork, result, info )
2284 $
WRITE( nout, fmt = 9980 )
'SDRGEV', info
2288 CALL sdrgev3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2289 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2290 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2291 $ a( 1, 9 ), nmax, d( 1, 1 ), d( 1, 2 ),
2292 $ d( 1, 3 ), d( 1, 4 ), d( 1, 5 ), d( 1, 6 ),
2293 $ work, lwork, result, info )
2295 $
WRITE( nout, fmt = 9980 )
'SDRGEV3', info
2297 WRITE( nout, fmt = 9973 )
2310 WRITE( nout, fmt = 9990 )c3
2313 $
CALL serrgg( c3, nout )
2314 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2315 CALL sdrgvx( nn, thresh, nin, nout, a( 1, 1 ), nmax,
2316 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), d( 1, 1 ),
2317 $ d( 1, 2 ), d( 1, 3 ), a( 1, 5 ), a( 1, 6 ),
2318 $ iwork( 1 ), iwork( 2 ), d( 1, 4 ), d( 1, 5 ),
2319 $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
2320 $ work, lwork, iwork( 3 ), liwork-2, result,
2324 $
WRITE( nout, fmt = 9980 )
'SDRGVX', info
2326 WRITE( nout, fmt = 9973 )
2329 ELSE IF(
lsamen( 3, c3,
'SSB' ) )
THEN
2336 ntypes = min( maxtyp, ntypes )
2337 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2339 $
CALL serrst(
'SSB', nout )
2343 CALL schksb2stg( nn, nval, nk, kval, maxtyp, dotype, iseed,
2344 $ thresh, nout, a( 1, 1 ), nmax, d( 1, 1 ),
2345 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
2346 $ a( 1, 2 ), nmax, work, lwork, result, info )
2348 $
WRITE( nout, fmt = 9980 )
'SCHKSB', info
2350 ELSE IF(
lsamen( 3, c3,
'SBB' ) )
THEN
2357 ntypes = min( maxtyp, ntypes )
2358 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2359 DO 370 i = 1, nparms
2362 IF( newsd.EQ.0 )
THEN
2364 iseed( k ) = ioldsd( k )
2367 WRITE( nout, fmt = 9966 )c3, nrhs
2368 CALL schkbb( nn, mval, nval, nk, kval, maxtyp, dotype, nrhs,
2369 $ iseed, thresh, nout, a( 1, 1 ), nmax,
2370 $ a( 1, 2 ), 2*nmax, d( 1, 1 ), d( 1, 2 ),
2371 $ a( 1, 4 ), nmax, a( 1, 5 ), nmax, a( 1, 6 ),
2372 $ nmax, a( 1, 7 ), work, lwork, result, info )
2374 $
WRITE( nout, fmt = 9980 )
'SCHKBB', info
2377 ELSE IF(
lsamen( 3, c3,
'GLM' ) )
THEN
2385 $
CALL serrgg(
'GLM', nout )
2386 CALL sckglm( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2387 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2388 $ work, d( 1, 1 ), nin, nout, info )
2390 $
WRITE( nout, fmt = 9980 )
'SCKGLM', info
2392 ELSE IF(
lsamen( 3, c3,
'GQR' ) )
THEN
2400 $
CALL serrgg(
'GQR', nout )
2401 CALL sckgqr( nn, mval, nn, pval, nn, nval, ntypes, iseed,
2402 $ thresh, nmax, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
2403 $ a( 1, 4 ), taua, b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
2404 $ b( 1, 4 ), b( 1, 5 ), taub, work, d( 1, 1 ), nin,
2407 $
WRITE( nout, fmt = 9980 )
'SCKGQR', info
2409 ELSE IF(
lsamen( 3, c3,
'GSV' ) )
THEN
2417 $
CALL serrgg(
'GSV', nout )
2418 CALL sckgsv( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2419 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
2420 $ a( 1, 3 ), b( 1, 3 ), a( 1, 4 ), taua, taub,
2421 $ b( 1, 4 ), iwork, work, d( 1, 1 ), nin, nout,
2424 $
WRITE( nout, fmt = 9980 )
'SCKGSV', info
2426 ELSE IF(
lsamen( 3, c3,
'CSD' ) )
THEN
2434 $
CALL serrgg(
'CSD', nout )
2435 CALL sckcsd( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2436 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), a( 1, 4 ),
2437 $ a( 1, 5 ), a( 1, 6 ), a( 1, 7 ), iwork, work,
2438 $ d( 1, 1 ), nin, nout, info )
2440 $
WRITE( nout, fmt = 9980 )
'SCKCSD', info
2442 ELSE IF(
lsamen( 3, c3,
'LSE' ) )
THEN
2450 $
CALL serrgg(
'LSE', nout )
2451 CALL scklse( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2452 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2453 $ work, d( 1, 1 ), nin, nout, info )
2455 $
WRITE( nout, fmt = 9980 )
'SCKLSE', info
2458 WRITE( nout, fmt = * )
2459 WRITE( nout, fmt = * )
2460 WRITE( nout, fmt = 9992 )c3
2462 IF( .NOT.( sgx .OR. sxv ) )
2465 WRITE( nout, fmt = 9994 )
2467 WRITE( nout, fmt = 9993 )s2 - s1
2469 DEALLOCATE (a, stat = allocatestatus)
2470 DEALLOCATE (b, stat = allocatestatus)
2471 DEALLOCATE (c, stat = allocatestatus)
2472 DEALLOCATE (work, stat = allocatestatus)
2474 9999
FORMAT( /
' Execution not attempted due to input errors' )
2475 9997
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4 )
2476 9996
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NS =', i4,
2477 $
', MAXB =', i4,
', IACC22 =', i4,
', NBCOL =', i4 )
2478 9995
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2480 9994
FORMAT( / /
' End of tests' )
2481 9993
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
2482 9992
FORMAT( 1x, a3,
': Unrecognized path name' )
2483 9991
FORMAT( / /
' *** Invalid integer value in column ', i2,
2484 $
' of input',
' line:', / a79 )
2485 9990
FORMAT( / / 1x, a3,
' routines were not tested' )
2486 9989
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be >=',
2488 9988
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be <=',
2490 9987
FORMAT(
' Tests of the Nonsymmetric Eigenvalue Problem routines' )
2491 9986
FORMAT(
' Tests of the Symmetric Eigenvalue Problem routines' )
2492 9985
FORMAT(
' Tests of the Singular Value Decomposition routines' )
2493 9984
FORMAT( /
' The following parameter values will be used:' )
2494 9983
FORMAT( 4x, a, 10i6, / 10x, 10i6 )
2495 9982
FORMAT( /
' Routines pass computational tests if test ratio is ',
2496 $
'less than', f8.2, / )
2497 9981
FORMAT(
' Relative machine ', a,
' is taken to be', e16.6 )
2498 9980
FORMAT(
' *** Error code from ', a,
' = ', i4 )
2499 9979
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2500 $ /
' SGEEV (eigenvalues and eigevectors)' )
2501 9978
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2502 $ /
' SGEES (Schur form)' )
2503 9977
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2504 $
' Driver', /
' SGEEVX (eigenvalues, eigenvectors and',
2505 $
' condition numbers)' )
2506 9976
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2507 $
' Driver', /
' SGEESX (Schur form and condition',
2509 9975
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2510 $
'Problem routines' )
2511 9974
FORMAT(
' Tests of SSBTRD', /
' (reduction of a symmetric band ',
2512 $
'matrix to tridiagonal form)' )
2513 9973
FORMAT( / 1x, 71(
'-' ) )
2514 9972
FORMAT( /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1 )
2515 9971
FORMAT( /
' Tests of the Generalized Linear Regression Model ',
2517 9970
FORMAT( /
' Tests of the Generalized QR and RQ routines' )
2518 9969
FORMAT( /
' Tests of the Generalized Singular Value',
2519 $
' Decomposition routines' )
2520 9968
FORMAT( /
' Tests of the Linear Least Squares routines' )
2521 9967
FORMAT(
' Tests of SGBBRD', /
' (reduction of a general band ',
2522 $
'matrix to real bidiagonal form)' )
2523 9966
FORMAT( / / 1x, a3,
': NRHS =', i4 )
2524 9965
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2525 $
'Problem Expert Driver SGGESX' )
2526 9964
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2527 $
'Problem Driver SGGES' )
2528 9963
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2529 $
'Problem Driver SGGEV' )
2530 9962
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2531 $
'Problem Expert Driver SGGEVX' )
2532 9961
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2534 $
', INWIN =', i4,
', INIBL =', i4,
', ISHFTS =', i4,
2536 9960
FORMAT( /
' Tests of the CS Decomposition routines' )
subroutine alareq(path, nmats, dotype, ntypes, nin, nout)
ALAREQ
subroutine xlaenv(ispec, nvalue)
XLAENV
subroutine ilaver(vers_major, vers_minor, vers_patch)
ILAVER returns the LAPACK version.
real function slamch(cmach)
SLAMCH
logical function lsamen(n, ca, cb)
LSAMEN
real function second()
SECOND Using ETIME
logical function lse(ri, rj, lr)
subroutine schkbb(nsizes, mval, nval, nwdths, kk, ntypes, dotype, nrhs, iseed, thresh, nounit, a, lda, ab, ldab, bd, be, q, ldq, p, ldp, c, ldc, cc, work, lwork, result, info)
SCHKBB
subroutine schkbd(nsizes, mval, nval, ntypes, dotype, nrhs, iseed, thresh, a, lda, bd, be, s1, s2, x, ldx, y, z, q, ldq, pt, ldpt, u, vt, work, lwork, iwork, nout, info)
SCHKBD
subroutine schkbk(nin, nout)
SCHKBK
subroutine schkbl(nin, nout)
SCHKBL
subroutine schkec(thresh, tsterr, nin, nout)
SCHKEC
subroutine schkgg(nsizes, nn, ntypes, dotype, iseed, thresh, tstdif, thrshn, nounit, a, lda, b, h, t, s1, s2, p1, p2, u, ldu, v, q, z, alphr1, alphi1, beta1, alphr3, alphi3, beta3, evectl, evectr, work, lwork, llwork, result, info)
SCHKGG
subroutine schkgk(nin, nout)
SCHKGK
subroutine schkgl(nin, nout)
SCHKGL
subroutine schkhs(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, h, t1, t2, u, ldu, z, uz, wr1, wi1, wr2, wi2, wr3, wi3, evectl, evectr, evecty, evectx, uu, tau, work, nwork, iwork, select, result, info)
SCHKHS
subroutine schksb2stg(nsizes, nn, nwdths, kk, ntypes, dotype, iseed, thresh, nounit, a, lda, sd, se, d1, d2, d3, u, ldu, work, lwork, result, info)
SCHKSB2STG
subroutine schksb(nsizes, nn, nwdths, kk, ntypes, dotype, iseed, thresh, nounit, a, lda, sd, se, u, ldu, work, lwork, result, info)
SCHKSB
subroutine schkst2stg(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, ap, sd, se, d1, d2, d3, d4, d5, wa1, wa2, wa3, wr, u, ldu, v, vp, tau, z, work, lwork, iwork, liwork, result, info)
SCHKST2STG
subroutine schkst(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, ap, sd, se, d1, d2, d3, d4, d5, wa1, wa2, wa3, wr, u, ldu, v, vp, tau, z, work, lwork, iwork, liwork, result, info)
SCHKST
subroutine sckcsd(nm, mval, pval, qval, nmats, iseed, thresh, mmax, x, xf, u1, u2, v1t, v2t, theta, iwork, work, rwork, nin, nout, info)
SCKCSD
subroutine sckglm(nn, mval, pval, nval, nmats, iseed, thresh, nmax, a, af, b, bf, x, work, rwork, nin, nout, info)
SCKGLM
subroutine sckgqr(nm, mval, np, pval, nn, nval, nmats, iseed, thresh, nmax, a, af, aq, ar, taua, b, bf, bz, bt, bwk, taub, work, rwork, nin, nout, info)
SCKGQR
subroutine sckgsv(nm, mval, pval, nval, nmats, iseed, thresh, nmax, a, af, b, bf, u, v, q, alpha, beta, r, iwork, work, rwork, nin, nout, info)
SCKGSV
subroutine scklse(nn, mval, pval, nval, nmats, iseed, thresh, nmax, a, af, b, bf, x, work, rwork, nin, nout, info)
SCKLSE
subroutine sdrges3(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, s, t, q, ldq, z, alphar, alphai, beta, work, lwork, result, bwork, info)
SDRGES3
subroutine sdrges(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, s, t, q, ldq, z, alphar, alphai, beta, work, lwork, result, bwork, info)
SDRGES
subroutine sdrgev3(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, s, t, q, ldq, z, qe, ldqe, alphar, alphai, beta, alphr1, alphi1, beta1, work, lwork, result, info)
SDRGEV3
subroutine sdrgev(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, s, t, q, ldq, z, qe, ldqe, alphar, alphai, beta, alphr1, alphi1, beta1, work, lwork, result, info)
SDRGEV
subroutine sdrgsx(nsize, ncmax, thresh, nin, nout, a, lda, b, ai, bi, z, q, alphar, alphai, beta, c, ldc, s, work, lwork, iwork, liwork, bwork, info)
SDRGSX
subroutine sdrgvx(nsize, thresh, nin, nout, a, lda, b, ai, bi, alphar, alphai, beta, vl, vr, ilo, ihi, lscale, rscale, s, stru, dif, diftru, work, lwork, iwork, liwork, result, bwork, info)
SDRGVX
subroutine sdrvbd(nsizes, mm, nn, ntypes, dotype, iseed, thresh, a, lda, u, ldu, vt, ldvt, asav, usav, vtsav, s, ssav, e, work, lwork, iwork, nout, info)
SDRVBD
subroutine sdrves(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, h, ht, wr, wi, wrt, wit, vs, ldvs, result, work, nwork, iwork, bwork, info)
SDRVES
subroutine sdrvev(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, h, wr, wi, wr1, wi1, vl, ldvl, vr, ldvr, lre, ldlre, result, work, nwork, iwork, info)
SDRVEV
subroutine sdrvsg2stg(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, ldb, d, d2, z, ldz, ab, bb, ap, bp, work, nwork, iwork, liwork, result, info)
SDRVSG2STG
subroutine sdrvsg(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, ldb, d, z, ldz, ab, bb, ap, bp, work, nwork, iwork, liwork, result, info)
SDRVSG
subroutine sdrvst2stg(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, d1, d2, d3, d4, eveigs, wa1, wa2, wa3, u, ldu, v, tau, z, work, lwork, iwork, liwork, result, info)
SDRVST2STG
subroutine sdrvst(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, d1, d2, d3, d4, eveigs, wa1, wa2, wa3, u, ldu, v, tau, z, work, lwork, iwork, liwork, result, info)
SDRVST
subroutine sdrvsx(nsizes, nn, ntypes, dotype, iseed, thresh, niunit, nounit, a, lda, h, ht, wr, wi, wrt, wit, wrtmp, witmp, vs, ldvs, vs1, result, work, lwork, iwork, bwork, info)
SDRVSX
subroutine sdrvvx(nsizes, nn, ntypes, dotype, iseed, thresh, niunit, nounit, a, lda, h, wr, wi, wr1, wi1, vl, ldvl, vr, ldvr, lre, ldlre, rcondv, rcndv1, rcdvin, rconde, rcnde1, rcdein, scale, scale1, result, work, nwork, iwork, info)
SDRVVX
subroutine serrbd(path, nunit)
SERRBD
subroutine serred(path, nunit)
SERRED
subroutine serrgg(path, nunit)
SERRGG
subroutine serrhs(path, nunit)
SERRHS
subroutine serrst(path, nunit)
SERRST