1041 #if defined(_OPENMP)
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, n_threads
1082 REAL eps, s1, s2, thresh, thrshn
1085 LOGICAL dotype( maxt ), logwrk( nmax )
1086 INTEGER ioldsd( 4 ), iseed( 4 ), iwork( liwork ),
1087 $ kval( maxin ), mval( maxin ), mxbval( maxin ),
1088 $ nbcol( maxin ), nbmin( maxin ), nbval( maxin ),
1089 $ nsval( maxin ), nval( maxin ), nxval( maxin ),
1091 INTEGER inmin( maxin ), inwin( maxin ), inibl( maxin ),
1092 $ ishfts( maxin ), iacc22( maxin )
1093 REAL d( nmax, 12 ), result( 500 ), taua( nmax ),
1094 $ taub( nmax ), x( 5*nmax )
1097 INTEGER allocatestatus
1098 REAL,
DIMENSION(:),
ALLOCATABLE :: work
1099 REAL,
DIMENSION(:,:),
ALLOCATABLE :: a, b, c
1122 INTEGER infot, maxb, nproc, nshift, nunit, seldim,
1126 LOGICAL selval( 20 )
1127 INTEGER iparms( 100 )
1128 REAL selwi( 20 ), selwr( 20 )
1131 COMMON / cenvir / nproc, nshift, maxb
1132 COMMON / claenv / iparms
1133 COMMON / infoc / infot, nunit, ok, lerr
1134 COMMON / srnamc / srnamt
1135 COMMON / sslct / selopt, seldim, selval, selwr, selwi
1138 DATA intstr /
'0123456789' /
1139 DATA ioldsd / 0, 0, 0, 1 /
1143 ALLOCATE ( a(nmax*nmax,need), stat = allocatestatus )
1144 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1145 ALLOCATE ( b(nmax*nmax,5), stat = allocatestatus )
1146 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1147 ALLOCATE ( c(ncmax*ncmax,ncmax*ncmax), stat = allocatestatus )
1148 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1149 ALLOCATE ( work(lwork), stat = allocatestatus )
1150 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1168 READ( nin, fmt =
'(A80)',
END = 380 )line
1170 nep =
lsamen( 3, path,
'NEP' ) .OR.
lsamen( 3, path,
'SHS' )
1171 sep =
lsamen( 3, path,
'SEP' ) .OR.
lsamen( 3, path,
'SST' ) .OR.
1172 $
lsamen( 3, path,
'SSG' ) .OR.
lsamen( 3, path,
'SE2' )
1173 svd =
lsamen( 3, path,
'SVD' ) .OR.
lsamen( 3, path,
'DBD' )
1174 svd =
lsamen( 3, path,
'SVD' ) .OR.
lsamen( 3, path,
'SBD' )
1175 sev =
lsamen( 3, path,
'SEV' )
1176 ses =
lsamen( 3, path,
'SES' )
1177 svx =
lsamen( 3, path,
'SVX' )
1178 ssx =
lsamen( 3, path,
'SSX' )
1179 sgg =
lsamen( 3, path,
'SGG' )
1180 sgs =
lsamen( 3, path,
'SGS' )
1181 sgx =
lsamen( 3, path,
'SGX' )
1182 sgv =
lsamen( 3, path,
'SGV' )
1183 sxv =
lsamen( 3, path,
'SXV' )
1184 ssb =
lsamen( 3, path,
'SSB' )
1185 sbb =
lsamen( 3, path,
'SBB' )
1186 glm =
lsamen( 3, path,
'GLM' )
1187 gqr =
lsamen( 3, path,
'GQR' ) .OR.
lsamen( 3, path,
'GRQ' )
1188 gsv =
lsamen( 3, path,
'GSV' )
1189 csd =
lsamen( 3, path,
'CSD' )
1191 sbl =
lsamen( 3, path,
'SBL' )
1192 sbk =
lsamen( 3, path,
'SBK' )
1193 sgl =
lsamen( 3, path,
'SGL' )
1194 sgk =
lsamen( 3, path,
'SGK' )
1198 IF( path.EQ.
' ' )
THEN
1201 WRITE( nout, fmt = 9987 )
1203 WRITE( nout, fmt = 9986 )
1205 WRITE( nout, fmt = 9985 )
1207 WRITE( nout, fmt = 9979 )
1209 WRITE( nout, fmt = 9978 )
1211 WRITE( nout, fmt = 9977 )
1213 WRITE( nout, fmt = 9976 )
1215 WRITE( nout, fmt = 9975 )
1217 WRITE( nout, fmt = 9964 )
1219 WRITE( nout, fmt = 9965 )
1221 WRITE( nout, fmt = 9963 )
1223 WRITE( nout, fmt = 9962 )
1225 WRITE( nout, fmt = 9974 )
1227 WRITE( nout, fmt = 9967 )
1229 WRITE( nout, fmt = 9971 )
1231 WRITE( nout, fmt = 9970 )
1233 WRITE( nout, fmt = 9969 )
1235 WRITE( nout, fmt = 9960 )
1237 WRITE( nout, fmt = 9968 )
1262 ELSE IF(
lsamen( 3, path,
'SEC' ) )
THEN
1266 READ( nin, fmt = * )thresh
1274 CALL schkec( thresh, tsterr, nin, nout )
1277 WRITE( nout, fmt = 9992 )path
1280 CALL ilaver( vers_major, vers_minor, vers_patch )
1281 WRITE( nout, fmt = 9972 ) vers_major, vers_minor, vers_patch
1282 WRITE( nout, fmt = 9984 )
1286 READ( nin, fmt = * )nn
1288 WRITE( nout, fmt = 9989 )
' NN ', nn, 1
1291 ELSE IF( nn.GT.maxin )
THEN
1292 WRITE( nout, fmt = 9988 )
' NN ', nn, maxin
1299 IF( .NOT.( sgx .OR. sxv ) )
THEN
1300 READ( nin, fmt = * )( mval( i ), i = 1, nn )
1307 IF( mval( i ).LT.0 )
THEN
1308 WRITE( nout, fmt = 9989 )vname, mval( i ), 0
1310 ELSE IF( mval( i ).GT.nmax )
THEN
1311 WRITE( nout, fmt = 9988 )vname, mval( i ), nmax
1315 WRITE( nout, fmt = 9983 )
'M: ', ( mval( i ), i = 1, nn )
1320 IF( glm .OR. gqr .OR. gsv .OR. csd .OR.
lse )
THEN
1321 READ( nin, fmt = * )( pval( i ), i = 1, nn )
1323 IF( pval( i ).LT.0 )
THEN
1324 WRITE( nout, fmt = 9989 )
' P ', pval( i ), 0
1326 ELSE IF( pval( i ).GT.nmax )
THEN
1327 WRITE( nout, fmt = 9988 )
' P ', pval( i ), nmax
1331 WRITE( nout, fmt = 9983 )
'P: ', ( pval( i ), i = 1, nn )
1336 IF( svd .OR. sbb .OR. glm .OR. gqr .OR. gsv .OR. csd .OR.
1338 READ( nin, fmt = * )( nval( i ), i = 1, nn )
1340 IF( nval( i ).LT.0 )
THEN
1341 WRITE( nout, fmt = 9989 )
' N ', nval( i ), 0
1343 ELSE IF( nval( i ).GT.nmax )
THEN
1344 WRITE( nout, fmt = 9988 )
' N ', nval( i ), nmax
1350 nval( i ) = mval( i )
1353 IF( .NOT.( sgx .OR. sxv ) )
THEN
1354 WRITE( nout, fmt = 9983 )
'N: ', ( nval( i ), i = 1, nn )
1356 WRITE( nout, fmt = 9983 )
'N: ', nn
1361 IF( ssb .OR. sbb )
THEN
1362 READ( nin, fmt = * )nk
1363 READ( nin, fmt = * )( kval( i ), i = 1, nk )
1365 IF( kval( i ).LT.0 )
THEN
1366 WRITE( nout, fmt = 9989 )
' K ', kval( i ), 0
1368 ELSE IF( kval( i ).GT.nmax )
THEN
1369 WRITE( nout, fmt = 9988 )
' K ', kval( i ), nmax
1373 WRITE( nout, fmt = 9983 )
'K: ', ( kval( i ), i = 1, nk )
1376 IF( sev .OR. ses .OR. svx .OR. ssx )
THEN
1381 READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1382 $ inmin( 1 ), inwin( 1 ), inibl(1), ishfts(1), iacc22(1)
1383 IF( nbval( 1 ).LT.1 )
THEN
1384 WRITE( nout, fmt = 9989 )
' NB ', nbval( 1 ), 1
1386 ELSE IF( nbmin( 1 ).LT.1 )
THEN
1387 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( 1 ), 1
1389 ELSE IF( nxval( 1 ).LT.1 )
THEN
1390 WRITE( nout, fmt = 9989 )
' NX ', nxval( 1 ), 1
1392 ELSE IF( inmin( 1 ).LT.1 )
THEN
1393 WRITE( nout, fmt = 9989 )
' INMIN ', inmin( 1 ), 1
1395 ELSE IF( inwin( 1 ).LT.1 )
THEN
1396 WRITE( nout, fmt = 9989 )
' INWIN ', inwin( 1 ), 1
1398 ELSE IF( inibl( 1 ).LT.1 )
THEN
1399 WRITE( nout, fmt = 9989 )
' INIBL ', inibl( 1 ), 1
1401 ELSE IF( ishfts( 1 ).LT.1 )
THEN
1402 WRITE( nout, fmt = 9989 )
' ISHFTS ', ishfts( 1 ), 1
1404 ELSE IF( iacc22( 1 ).LT.0 )
THEN
1405 WRITE( nout, fmt = 9989 )
' IACC22 ', iacc22( 1 ), 0
1408 CALL xlaenv( 1, nbval( 1 ) )
1409 CALL xlaenv( 2, nbmin( 1 ) )
1410 CALL xlaenv( 3, nxval( 1 ) )
1411 CALL xlaenv(12, max( 11, inmin( 1 ) ) )
1412 CALL xlaenv(13, inwin( 1 ) )
1413 CALL xlaenv(14, inibl( 1 ) )
1414 CALL xlaenv(15, ishfts( 1 ) )
1415 CALL xlaenv(16, iacc22( 1 ) )
1416 WRITE( nout, fmt = 9983 )
'NB: ', nbval( 1 )
1417 WRITE( nout, fmt = 9983 )
'NBMIN:', nbmin( 1 )
1418 WRITE( nout, fmt = 9983 )
'NX: ', nxval( 1 )
1419 WRITE( nout, fmt = 9983 )
'INMIN: ', inmin( 1 )
1420 WRITE( nout, fmt = 9983 )
'INWIN: ', inwin( 1 )
1421 WRITE( nout, fmt = 9983 )
'INIBL: ', inibl( 1 )
1422 WRITE( nout, fmt = 9983 )
'ISHFTS: ', ishfts( 1 )
1423 WRITE( nout, fmt = 9983 )
'IACC22: ', iacc22( 1 )
1425 ELSE IF( sgs .OR. sgx .OR. sgv .OR. sxv )
THEN
1430 READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1431 $ nsval( 1 ), mxbval( 1 )
1432 IF( nbval( 1 ).LT.1 )
THEN
1433 WRITE( nout, fmt = 9989 )
' NB ', nbval( 1 ), 1
1435 ELSE IF( nbmin( 1 ).LT.1 )
THEN
1436 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( 1 ), 1
1438 ELSE IF( nxval( 1 ).LT.1 )
THEN
1439 WRITE( nout, fmt = 9989 )
' NX ', nxval( 1 ), 1
1441 ELSE IF( nsval( 1 ).LT.2 )
THEN
1442 WRITE( nout, fmt = 9989 )
' NS ', nsval( 1 ), 2
1444 ELSE IF( mxbval( 1 ).LT.1 )
THEN
1445 WRITE( nout, fmt = 9989 )
' MAXB ', mxbval( 1 ), 1
1448 CALL xlaenv( 1, nbval( 1 ) )
1449 CALL xlaenv( 2, nbmin( 1 ) )
1450 CALL xlaenv( 3, nxval( 1 ) )
1451 CALL xlaenv( 4, nsval( 1 ) )
1452 CALL xlaenv( 8, mxbval( 1 ) )
1453 WRITE( nout, fmt = 9983 )
'NB: ', nbval( 1 )
1454 WRITE( nout, fmt = 9983 )
'NBMIN:', nbmin( 1 )
1455 WRITE( nout, fmt = 9983 )
'NX: ', nxval( 1 )
1456 WRITE( nout, fmt = 9983 )
'NS: ', nsval( 1 )
1457 WRITE( nout, fmt = 9983 )
'MAXB: ', mxbval( 1 )
1459 ELSE IF( .NOT.ssb .AND. .NOT.glm .AND. .NOT.gqr .AND. .NOT.
1460 $ gsv .AND. .NOT.csd .AND. .NOT.
lse )
THEN
1465 READ( nin, fmt = * )nparms
1466 IF( nparms.LT.1 )
THEN
1467 WRITE( nout, fmt = 9989 )
'NPARMS', nparms, 1
1470 ELSE IF( nparms.GT.maxin )
THEN
1471 WRITE( nout, fmt = 9988 )
'NPARMS', nparms, maxin
1479 READ( nin, fmt = * )( nbval( i ), i = 1, nparms )
1481 IF( nbval( i ).LT.0 )
THEN
1482 WRITE( nout, fmt = 9989 )
' NB ', nbval( i ), 0
1484 ELSE IF( nbval( i ).GT.nmax )
THEN
1485 WRITE( nout, fmt = 9988 )
' NB ', nbval( i ), nmax
1489 WRITE( nout, fmt = 9983 )
'NB: ',
1490 $ ( nbval( i ), i = 1, nparms )
1495 IF( nep .OR. sep .OR. svd .OR. sgg )
THEN
1496 READ( nin, fmt = * )( nbmin( i ), i = 1, nparms )
1498 IF( nbmin( i ).LT.0 )
THEN
1499 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( i ), 0
1501 ELSE IF( nbmin( i ).GT.nmax )
THEN
1502 WRITE( nout, fmt = 9988 )
'NBMIN ', nbmin( i ), nmax
1506 WRITE( nout, fmt = 9983 )
'NBMIN:',
1507 $ ( nbmin( i ), i = 1, nparms )
1516 IF( nep .OR. sep .OR. svd )
THEN
1517 READ( nin, fmt = * )( nxval( i ), i = 1, nparms )
1518 DO 100 i = 1, nparms
1519 IF( nxval( i ).LT.0 )
THEN
1520 WRITE( nout, fmt = 9989 )
' NX ', nxval( i ), 0
1522 ELSE IF( nxval( i ).GT.nmax )
THEN
1523 WRITE( nout, fmt = 9988 )
' NX ', nxval( i ), nmax
1527 WRITE( nout, fmt = 9983 )
'NX: ',
1528 $ ( nxval( i ), i = 1, nparms )
1530 DO 110 i = 1, nparms
1538 IF( svd .OR. sbb .OR. sgg )
THEN
1539 READ( nin, fmt = * )( nsval( i ), i = 1, nparms )
1540 DO 120 i = 1, nparms
1541 IF( nsval( i ).LT.0 )
THEN
1542 WRITE( nout, fmt = 9989 )
' NS ', nsval( i ), 0
1544 ELSE IF( nsval( i ).GT.nmax )
THEN
1545 WRITE( nout, fmt = 9988 )
' NS ', nsval( i ), nmax
1549 WRITE( nout, fmt = 9983 )
'NS: ',
1550 $ ( nsval( i ), i = 1, nparms )
1552 DO 130 i = 1, nparms
1560 READ( nin, fmt = * )( mxbval( i ), i = 1, nparms )
1561 DO 140 i = 1, nparms
1562 IF( mxbval( i ).LT.0 )
THEN
1563 WRITE( nout, fmt = 9989 )
' MAXB ', mxbval( i ), 0
1565 ELSE IF( mxbval( i ).GT.nmax )
THEN
1566 WRITE( nout, fmt = 9988 )
' MAXB ', mxbval( i ), nmax
1570 WRITE( nout, fmt = 9983 )
'MAXB: ',
1571 $ ( mxbval( i ), i = 1, nparms )
1573 DO 150 i = 1, nparms
1581 READ( nin, fmt = * )( inmin( i ), i = 1, nparms )
1582 DO 540 i = 1, nparms
1583 IF( inmin( i ).LT.0 )
THEN
1584 WRITE( nout, fmt = 9989 )
' INMIN ', inmin( i ), 0
1588 WRITE( nout, fmt = 9983 )
'INMIN: ',
1589 $ ( inmin( i ), i = 1, nparms )
1591 DO 550 i = 1, nparms
1599 READ( nin, fmt = * )( inwin( i ), i = 1, nparms )
1600 DO 560 i = 1, nparms
1601 IF( inwin( i ).LT.0 )
THEN
1602 WRITE( nout, fmt = 9989 )
' INWIN ', inwin( i ), 0
1606 WRITE( nout, fmt = 9983 )
'INWIN: ',
1607 $ ( inwin( i ), i = 1, nparms )
1609 DO 570 i = 1, nparms
1617 READ( nin, fmt = * )( inibl( i ), i = 1, nparms )
1618 DO 580 i = 1, nparms
1619 IF( inibl( i ).LT.0 )
THEN
1620 WRITE( nout, fmt = 9989 )
' INIBL ', inibl( i ), 0
1624 WRITE( nout, fmt = 9983 )
'INIBL: ',
1625 $ ( inibl( i ), i = 1, nparms )
1627 DO 590 i = 1, nparms
1635 READ( nin, fmt = * )( ishfts( i ), i = 1, nparms )
1636 DO 600 i = 1, nparms
1637 IF( ishfts( i ).LT.0 )
THEN
1638 WRITE( nout, fmt = 9989 )
' ISHFTS ', ishfts( i ), 0
1642 WRITE( nout, fmt = 9983 )
'ISHFTS: ',
1643 $ ( ishfts( i ), i = 1, nparms )
1645 DO 610 i = 1, nparms
1652 IF( nep .OR. sgg )
THEN
1653 READ( nin, fmt = * )( iacc22( i ), i = 1, nparms )
1654 DO 620 i = 1, nparms
1655 IF( iacc22( i ).LT.0 )
THEN
1656 WRITE( nout, fmt = 9989 )
' IACC22 ', iacc22( i ), 0
1660 WRITE( nout, fmt = 9983 )
'IACC22: ',
1661 $ ( iacc22( i ), i = 1, nparms )
1663 DO 630 i = 1, nparms
1671 READ( nin, fmt = * )( nbcol( i ), i = 1, nparms )
1672 DO 160 i = 1, nparms
1673 IF( nbcol( i ).LT.0 )
THEN
1674 WRITE( nout, fmt = 9989 )
'NBCOL ', nbcol( i ), 0
1676 ELSE IF( nbcol( i ).GT.nmax )
THEN
1677 WRITE( nout, fmt = 9988 )
'NBCOL ', nbcol( i ), nmax
1681 WRITE( nout, fmt = 9983 )
'NBCOL:',
1682 $ ( nbcol( i ), i = 1, nparms )
1684 DO 170 i = 1, nparms
1692 WRITE( nout, fmt = * )
1693 eps =
slamch(
'Underflow threshold' )
1694 WRITE( nout, fmt = 9981 )
'underflow', eps
1695 eps =
slamch(
'Overflow threshold' )
1696 WRITE( nout, fmt = 9981 )
'overflow ', eps
1697 eps =
slamch(
'Epsilon' )
1698 WRITE( nout, fmt = 9981 )
'precision', eps
1702 READ( nin, fmt = * )thresh
1703 WRITE( nout, fmt = 9982 )thresh
1704 IF( sep .OR. svd .OR. sgg )
THEN
1708 READ( nin, fmt = * )tstchk
1712 READ( nin, fmt = * )tstdrv
1717 READ( nin, fmt = * )tsterr
1721 READ( nin, fmt = * )newsd
1726 $
READ( nin, fmt = * )( ioldsd( i ), i = 1, 4 )
1729 iseed( i ) = ioldsd( i )
1733 WRITE( nout, fmt = 9999 )
1744 IF( .NOT.( sgx .OR. sxv ) )
THEN
1747 READ( nin, fmt =
'(A80)',
END = 380 )line
1755 IF( i.GT.lenp )
THEN
1763 IF( line( i: i ).NE.
' ' .AND. line( i: i ).NE.
',' )
THEN
1770 IF( c1.EQ.intstr( k: k ) )
THEN
1775 WRITE( nout, fmt = 9991 )i, line
1780 ELSE IF( i1.GT.0 )
THEN
1790 IF( .NOT.( sev .OR. ses .OR. svx .OR. ssx .OR. sgv .OR.
1791 $ sgs ) .AND. ntypes.LE.0 )
THEN
1792 WRITE( nout, fmt = 9990 )c3
1805 IF( newsd.EQ.0 )
THEN
1807 iseed( k ) = ioldsd( k )
1811 IF(
lsamen( 3, c3,
'SHS' ) .OR.
lsamen( 3, c3,
'NEP' ) )
THEN
1824 ntypes = min( maxtyp, ntypes )
1825 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1828 $
CALL serrhs(
'SHSEQR', nout )
1829 DO 270 i = 1, nparms
1830 CALL xlaenv( 1, nbval( i ) )
1831 CALL xlaenv( 2, nbmin( i ) )
1832 CALL xlaenv( 3, nxval( i ) )
1833 CALL xlaenv(12, max( 11, inmin( i ) ) )
1834 CALL xlaenv(13, inwin( i ) )
1835 CALL xlaenv(14, inibl( i ) )
1836 CALL xlaenv(15, ishfts( i ) )
1837 CALL xlaenv(16, iacc22( i ) )
1839 IF( newsd.EQ.0 )
THEN
1841 iseed( k ) = ioldsd( k )
1844 WRITE( nout, fmt = 9961 )c3, nbval( i ), nbmin( i ),
1845 $ nxval( i ), max( 11, inmin(i)),
1846 $ inwin( i ), inibl( i ), ishfts( i ), iacc22( i )
1847 CALL schkhs( nn, nval, maxtyp, dotype, iseed, thresh, nout,
1848 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
1849 $ a( 1, 4 ), a( 1, 5 ), nmax, a( 1, 6 ),
1850 $ a( 1, 7 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
1851 $ d( 1, 4 ), d( 1, 5 ), d( 1, 6 ), a( 1, 8 ),
1852 $ a( 1, 9 ), a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
1853 $ d( 1, 7 ), work, lwork, iwork, logwrk, result,
1856 $
WRITE( nout, fmt = 9980 )
'SCHKHS', info
1859 ELSE IF(
lsamen( 3, c3,
'SST' ) .OR.
lsamen( 3, c3,
'SEP' )
1860 $ .OR.
lsamen( 3, c3,
'SE2' ) )
THEN
1871 ntypes = min( maxtyp, ntypes )
1872 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1876 #if defined(_OPENMP)
1877 n_threads = omp_get_num_threads()
1878 CALL omp_set_num_threads(1)
1880 CALL serrst(
'SST', nout )
1881 #if defined(_OPENMP)
1882 CALL omp_set_num_threads(n_threads)
1885 DO 290 i = 1, nparms
1886 CALL xlaenv( 1, nbval( i ) )
1887 CALL xlaenv( 2, nbmin( i ) )
1888 CALL xlaenv( 3, nxval( i ) )
1890 IF( newsd.EQ.0 )
THEN
1892 iseed( k ) = ioldsd( k )
1895 WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1898 IF(
lsamen( 3, c3,
'SE2' ) )
THEN
1899 CALL schkst2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1900 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
1901 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
1902 $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
1903 $ d( 1, 10 ), d( 1, 11 ), a( 1, 3 ), nmax,
1904 $ a( 1, 4 ), a( 1, 5 ), d( 1, 12 ), a( 1, 6 ),
1905 $ work, lwork, iwork, liwork, result, info )
1907 CALL schkst( nn, nval, maxtyp, dotype, iseed, thresh,
1908 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
1909 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
1910 $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
1911 $ d( 1, 10 ), d( 1, 11 ), a( 1, 3 ), nmax,
1912 $ a( 1, 4 ), a( 1, 5 ), d( 1, 12 ), a( 1, 6 ),
1913 $ work, lwork, iwork, liwork, result, info )
1916 $
WRITE( nout, fmt = 9980 )
'SCHKST', info
1919 IF(
lsamen( 3, c3,
'SE2' ) )
THEN
1920 CALL sdrvst2stg( nn, nval, 18, dotype, iseed, thresh,
1921 $ nout, a( 1, 1 ), nmax, d( 1, 3 ), d( 1, 4 ),
1922 $ d( 1, 5 ), d( 1, 6 ), d( 1, 8 ), d( 1, 9 ),
1923 $ d( 1, 10 ), d( 1, 11), a( 1, 2 ), nmax,
1924 $ a( 1, 3 ), d( 1, 12 ), a( 1, 4 ), work,
1925 $ lwork, iwork, liwork, result, info )
1927 CALL sdrvst( nn, nval, 18, dotype, iseed, thresh,
1928 $ nout, a( 1, 1 ), nmax, d( 1, 3 ), d( 1, 4 ),
1929 $ d( 1, 5 ), d( 1, 6 ), d( 1, 8 ), d( 1, 9 ),
1930 $ d( 1, 10 ), d( 1, 11), a( 1, 2 ), nmax,
1931 $ a( 1, 3 ), d( 1, 12 ), a( 1, 4 ), work,
1932 $ lwork, iwork, liwork, result, info )
1935 $
WRITE( nout, fmt = 9980 )
'SDRVST', info
1939 ELSE IF(
lsamen( 3, c3,
'SSG' ) )
THEN
1950 ntypes = min( maxtyp, ntypes )
1951 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1953 DO 310 i = 1, nparms
1954 CALL xlaenv( 1, nbval( i ) )
1955 CALL xlaenv( 2, nbmin( i ) )
1956 CALL xlaenv( 3, nxval( i ) )
1958 IF( newsd.EQ.0 )
THEN
1960 iseed( k ) = ioldsd( k )
1963 WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1971 CALL sdrvsg2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1972 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
1973 $ d( 1, 3 ), d( 1, 3 ), a( 1, 3 ), nmax,
1974 $ a( 1, 4 ), a( 1, 5 ), a( 1, 6 ),
1975 $ a( 1, 7 ), work, lwork, iwork, liwork,
1978 $
WRITE( nout, fmt = 9980 )
'SDRVSG', info
1982 ELSE IF(
lsamen( 3, c3,
'SBD' ) .OR.
lsamen( 3, c3,
'SVD' ) )
THEN
1994 ntypes = min( maxtyp, ntypes )
1995 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2001 IF( tsterr .AND. tstchk )
2002 $
CALL serrbd(
'SBD', nout )
2003 IF( tsterr .AND. tstdrv )
2004 $
CALL serred(
'SBD', nout )
2006 DO 330 i = 1, nparms
2008 CALL xlaenv( 1, nbval( i ) )
2009 CALL xlaenv( 2, nbmin( i ) )
2010 CALL xlaenv( 3, nxval( i ) )
2011 IF( newsd.EQ.0 )
THEN
2013 iseed( k ) = ioldsd( k )
2016 WRITE( nout, fmt = 9995 )c3, nbval( i ), nbmin( i ),
2019 CALL schkbd( nn, mval, nval, maxtyp, dotype, nrhs, iseed,
2020 $ thresh, a( 1, 1 ), nmax, d( 1, 1 ),
2021 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 2 ),
2022 $ nmax, a( 1, 3 ), a( 1, 4 ), a( 1, 5 ), nmax,
2023 $ a( 1, 6 ), nmax, a( 1, 7 ), a( 1, 8 ), work,
2024 $ lwork, iwork, nout, info )
2026 $
WRITE( nout, fmt = 9980 )
'SCHKBD', info
2029 $
CALL sdrvbd( nn, mval, nval, maxtyp, dotype, iseed,
2030 $ thresh, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
2031 $ a( 1, 3 ), nmax, a( 1, 4 ), a( 1, 5 ),
2032 $ a( 1, 6 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
2033 $ work, lwork, iwork, nout, info )
2036 ELSE IF(
lsamen( 3, c3,
'SEV' ) )
THEN
2044 ntypes = min( maxtyp, ntypes )
2045 IF( ntypes.LE.0 )
THEN
2046 WRITE( nout, fmt = 9990 )c3
2049 $
CALL serred( c3, nout )
2050 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2051 CALL sdrvev( nn, nval, ntypes, dotype, iseed, thresh, nout,
2052 $ a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
2053 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 3 ),
2054 $ nmax, a( 1, 4 ), nmax, a( 1, 5 ), nmax, result,
2055 $ work, lwork, iwork, info )
2057 $
WRITE( nout, fmt = 9980 )
'SGEEV', info
2059 WRITE( nout, fmt = 9973 )
2062 ELSE IF(
lsamen( 3, c3,
'SES' ) )
THEN
2070 ntypes = min( maxtyp, ntypes )
2071 IF( ntypes.LE.0 )
THEN
2072 WRITE( nout, fmt = 9990 )c3
2075 $
CALL serred( c3, nout )
2076 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2077 CALL sdrves( nn, nval, ntypes, dotype, iseed, thresh, nout,
2078 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2079 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2080 $ a( 1, 4 ), nmax, result, work, lwork, iwork,
2083 $
WRITE( nout, fmt = 9980 )
'SGEES', info
2085 WRITE( nout, fmt = 9973 )
2088 ELSE IF(
lsamen( 3, c3,
'SVX' ) )
THEN
2096 ntypes = min( maxtyp, ntypes )
2097 IF( ntypes.LT.0 )
THEN
2098 WRITE( nout, fmt = 9990 )c3
2101 $
CALL serred( c3, nout )
2102 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2103 CALL sdrvvx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2104 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
2105 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 3 ),
2106 $ nmax, a( 1, 4 ), nmax, a( 1, 5 ), nmax,
2107 $ d( 1, 5 ), d( 1, 6 ), d( 1, 7 ), d( 1, 8 ),
2108 $ d( 1, 9 ), d( 1, 10 ), d( 1, 11 ), d( 1, 12 ),
2109 $ result, work, lwork, iwork, info )
2111 $
WRITE( nout, fmt = 9980 )
'SGEEVX', info
2113 WRITE( nout, fmt = 9973 )
2116 ELSE IF(
lsamen( 3, c3,
'SSX' ) )
THEN
2124 ntypes = min( maxtyp, ntypes )
2125 IF( ntypes.LT.0 )
THEN
2126 WRITE( nout, fmt = 9990 )c3
2129 $
CALL serred( c3, nout )
2130 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2131 CALL sdrvsx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2132 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2133 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2134 $ d( 1, 5 ), d( 1, 6 ), a( 1, 4 ), nmax,
2135 $ a( 1, 5 ), result, work, lwork, iwork, logwrk,
2138 $
WRITE( nout, fmt = 9980 )
'SGEESX', info
2140 WRITE( nout, fmt = 9973 )
2143 ELSE IF(
lsamen( 3, c3,
'SGG' ) )
THEN
2157 ntypes = min( maxtyp, ntypes )
2158 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2160 IF( tstchk .AND. tsterr )
2161 &
CALL serrgg( c3, nout )
2162 DO 350 i = 1, nparms
2163 CALL xlaenv( 1, nbval( i ) )
2164 CALL xlaenv( 2, nbmin( i ) )
2165 CALL xlaenv( 4, nsval( i ) )
2166 CALL xlaenv( 8, mxbval( i ) )
2167 CALL xlaenv( 16, iacc22( i ) )
2168 CALL xlaenv( 5, nbcol( i ) )
2170 IF( newsd.EQ.0 )
THEN
2172 iseed( k ) = ioldsd( k )
2175 WRITE( nout, fmt = 9996 )c3, nbval( i ), nbmin( i ),
2176 $ nsval( i ), mxbval( i ), iacc22( i ), nbcol( i )
2180 CALL schkgg( nn, nval, maxtyp, dotype, iseed, thresh,
2181 $ tstdif, thrshn, nout, a( 1, 1 ), nmax,
2182 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2183 $ a( 1, 6 ), a( 1, 7 ), a( 1, 8 ), a( 1, 9 ),
2184 $ nmax, a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
2185 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2186 $ d( 1, 5 ), d( 1, 6 ), a( 1, 13 ),
2187 $ a( 1, 14 ), work, lwork, logwrk, result,
2190 $
WRITE( nout, fmt = 9980 )
'SCHKGG', info
2194 ELSE IF(
lsamen( 3, c3,
'SGS' ) )
THEN
2202 ntypes = min( maxtyp, ntypes )
2203 IF( ntypes.LE.0 )
THEN
2204 WRITE( nout, fmt = 9990 )c3
2207 $
CALL serrgg( c3, nout )
2208 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2209 CALL sdrges( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2210 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2211 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2212 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), work, lwork,
2213 $ result, logwrk, info )
2216 $
WRITE( nout, fmt = 9980 )
'SDRGES', info
2221 CALL sdrges3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2222 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2223 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2224 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), work, lwork,
2225 $ result, logwrk, info )
2228 $
WRITE( nout, fmt = 9980 )
'SDRGES3', info
2230 WRITE( nout, fmt = 9973 )
2243 WRITE( nout, fmt = 9990 )c3
2246 $
CALL serrgg( c3, nout )
2247 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2249 CALL sdrgsx( nn, ncmax, thresh, nin, nout, a( 1, 1 ), nmax,
2250 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2251 $ a( 1, 6 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
2252 $ c( 1, 1 ), ncmax*ncmax, a( 1, 12 ), work,
2253 $ lwork, iwork, liwork, logwrk, info )
2255 $
WRITE( nout, fmt = 9980 )
'SDRGSX', info
2257 WRITE( nout, fmt = 9973 )
2260 ELSE IF(
lsamen( 3, c3,
'SGV' ) )
THEN
2268 ntypes = min( maxtyp, ntypes )
2269 IF( ntypes.LE.0 )
THEN
2270 WRITE( nout, fmt = 9990 )c3
2273 $
CALL serrgg( c3, nout )
2274 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2275 CALL sdrgev( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2276 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2277 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2278 $ a( 1, 9 ), nmax, d( 1, 1 ), d( 1, 2 ),
2279 $ d( 1, 3 ), d( 1, 4 ), d( 1, 5 ), d( 1, 6 ),
2280 $ work, lwork, result, info )
2282 $
WRITE( nout, fmt = 9980 )
'SDRGEV', info
2286 CALL sdrgev3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2287 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2288 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2289 $ a( 1, 9 ), nmax, d( 1, 1 ), d( 1, 2 ),
2290 $ d( 1, 3 ), d( 1, 4 ), d( 1, 5 ), d( 1, 6 ),
2291 $ work, lwork, result, info )
2293 $
WRITE( nout, fmt = 9980 )
'SDRGEV3', info
2295 WRITE( nout, fmt = 9973 )
2308 WRITE( nout, fmt = 9990 )c3
2311 $
CALL serrgg( c3, nout )
2312 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2313 CALL sdrgvx( nn, thresh, nin, nout, a( 1, 1 ), nmax,
2314 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), d( 1, 1 ),
2315 $ d( 1, 2 ), d( 1, 3 ), a( 1, 5 ), a( 1, 6 ),
2316 $ iwork( 1 ), iwork( 2 ), d( 1, 4 ), d( 1, 5 ),
2317 $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
2318 $ work, lwork, iwork( 3 ), liwork-2, result,
2322 $
WRITE( nout, fmt = 9980 )
'SDRGVX', info
2324 WRITE( nout, fmt = 9973 )
2327 ELSE IF(
lsamen( 3, c3,
'SSB' ) )
THEN
2334 ntypes = min( maxtyp, ntypes )
2335 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2337 $
CALL serrst(
'SSB', nout )
2341 CALL schksb2stg( nn, nval, nk, kval, maxtyp, dotype, iseed,
2342 $ thresh, nout, a( 1, 1 ), nmax, d( 1, 1 ),
2343 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
2344 $ a( 1, 2 ), nmax, work, lwork, result, info )
2346 $
WRITE( nout, fmt = 9980 )
'SCHKSB', info
2348 ELSE IF(
lsamen( 3, c3,
'SBB' ) )
THEN
2355 ntypes = min( maxtyp, ntypes )
2356 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2357 DO 370 i = 1, nparms
2360 IF( newsd.EQ.0 )
THEN
2362 iseed( k ) = ioldsd( k )
2365 WRITE( nout, fmt = 9966 )c3, nrhs
2366 CALL schkbb( nn, mval, nval, nk, kval, maxtyp, dotype, nrhs,
2367 $ iseed, thresh, nout, a( 1, 1 ), nmax,
2368 $ a( 1, 2 ), 2*nmax, d( 1, 1 ), d( 1, 2 ),
2369 $ a( 1, 4 ), nmax, a( 1, 5 ), nmax, a( 1, 6 ),
2370 $ nmax, a( 1, 7 ), work, lwork, result, info )
2372 $
WRITE( nout, fmt = 9980 )
'SCHKBB', info
2375 ELSE IF(
lsamen( 3, c3,
'GLM' ) )
THEN
2383 $
CALL serrgg(
'GLM', nout )
2384 CALL sckglm( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2385 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2386 $ work, d( 1, 1 ), nin, nout, info )
2388 $
WRITE( nout, fmt = 9980 )
'SCKGLM', info
2390 ELSE IF(
lsamen( 3, c3,
'GQR' ) )
THEN
2398 $
CALL serrgg(
'GQR', nout )
2399 CALL sckgqr( nn, mval, nn, pval, nn, nval, ntypes, iseed,
2400 $ thresh, nmax, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
2401 $ a( 1, 4 ), taua, b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
2402 $ b( 1, 4 ), b( 1, 5 ), taub, work, d( 1, 1 ), nin,
2405 $
WRITE( nout, fmt = 9980 )
'SCKGQR', info
2407 ELSE IF(
lsamen( 3, c3,
'GSV' ) )
THEN
2415 $
CALL serrgg(
'GSV', nout )
2416 CALL sckgsv( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2417 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
2418 $ a( 1, 3 ), b( 1, 3 ), a( 1, 4 ), taua, taub,
2419 $ b( 1, 4 ), iwork, work, d( 1, 1 ), nin, nout,
2422 $
WRITE( nout, fmt = 9980 )
'SCKGSV', info
2424 ELSE IF(
lsamen( 3, c3,
'CSD' ) )
THEN
2432 $
CALL serrgg(
'CSD', nout )
2433 CALL sckcsd( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2434 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), a( 1, 4 ),
2435 $ a( 1, 5 ), a( 1, 6 ), a( 1, 7 ), iwork, work,
2436 $ d( 1, 1 ), nin, nout, info )
2438 $
WRITE( nout, fmt = 9980 )
'SCKCSD', info
2440 ELSE IF(
lsamen( 3, c3,
'LSE' ) )
THEN
2448 $
CALL serrgg(
'LSE', nout )
2449 CALL scklse( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2450 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2451 $ work, d( 1, 1 ), nin, nout, info )
2453 $
WRITE( nout, fmt = 9980 )
'SCKLSE', info
2456 WRITE( nout, fmt = * )
2457 WRITE( nout, fmt = * )
2458 WRITE( nout, fmt = 9992 )c3
2460 IF( .NOT.( sgx .OR. sxv ) )
2463 WRITE( nout, fmt = 9994 )
2465 WRITE( nout, fmt = 9993 )s2 - s1
2467 DEALLOCATE (a, stat = allocatestatus)
2468 DEALLOCATE (b, stat = allocatestatus)
2469 DEALLOCATE (c, stat = allocatestatus)
2470 DEALLOCATE (work, stat = allocatestatus)
2472 9999
FORMAT( /
' Execution not attempted due to input errors' )
2473 9997
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4 )
2474 9996
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NS =', i4,
2475 $
', MAXB =', i4,
', IACC22 =', i4,
', NBCOL =', i4 )
2476 9995
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2478 9994
FORMAT( / /
' End of tests' )
2479 9993
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
2480 9992
FORMAT( 1x, a3,
': Unrecognized path name' )
2481 9991
FORMAT( / /
' *** Invalid integer value in column ', i2,
2482 $
' of input',
' line:', / a79 )
2483 9990
FORMAT( / / 1x, a3,
' routines were not tested' )
2484 9989
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be >=',
2486 9988
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be <=',
2488 9987
FORMAT(
' Tests of the Nonsymmetric Eigenvalue Problem routines' )
2489 9986
FORMAT(
' Tests of the Symmetric Eigenvalue Problem routines' )
2490 9985
FORMAT(
' Tests of the Singular Value Decomposition routines' )
2491 9984
FORMAT( /
' The following parameter values will be used:' )
2492 9983
FORMAT( 4x, a, 10i6, / 10x, 10i6 )
2493 9982
FORMAT( /
' Routines pass computational tests if test ratio is ',
2494 $
'less than', f8.2, / )
2495 9981
FORMAT(
' Relative machine ', a,
' is taken to be', e16.6 )
2496 9980
FORMAT(
' *** Error code from ', a,
' = ', i4 )
2497 9979
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2498 $ /
' SGEEV (eigenvalues and eigevectors)' )
2499 9978
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2500 $ /
' SGEES (Schur form)' )
2501 9977
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2502 $
' Driver', /
' SGEEVX (eigenvalues, eigenvectors and',
2503 $
' condition numbers)' )
2504 9976
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2505 $
' Driver', /
' SGEESX (Schur form and condition',
2507 9975
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2508 $
'Problem routines' )
2509 9974
FORMAT(
' Tests of SSBTRD', /
' (reduction of a symmetric band ',
2510 $
'matrix to tridiagonal form)' )
2511 9973
FORMAT( / 1x, 71(
'-' ) )
2512 9972
FORMAT( /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1 )
2513 9971
FORMAT( /
' Tests of the Generalized Linear Regression Model ',
2515 9970
FORMAT( /
' Tests of the Generalized QR and RQ routines' )
2516 9969
FORMAT( /
' Tests of the Generalized Singular Value',
2517 $
' Decomposition routines' )
2518 9968
FORMAT( /
' Tests of the Linear Least Squares routines' )
2519 9967
FORMAT(
' Tests of SGBBRD', /
' (reduction of a general band ',
2520 $
'matrix to real bidiagonal form)' )
2521 9966
FORMAT( / / 1x, a3,
': NRHS =', i4 )
2522 9965
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2523 $
'Problem Expert Driver SGGESX' )
2524 9964
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2525 $
'Problem Driver SGGES' )
2526 9963
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2527 $
'Problem Driver SGGEV' )
2528 9962
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2529 $
'Problem Expert Driver SGGEVX' )
2530 9961
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2532 $
', INWIN =', i4,
', INIBL =', i4,
', ISHFTS =', i4,
2534 9960
FORMAT( /
' Tests of the CS Decomposition routines' )
logical function lsamen(N, CA, CB)
LSAMEN
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
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 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 schkbl(NIN, NOUT)
SCHKBL
subroutine sckglm(NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
SCKGLM
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 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 schksb2stg(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, D1, D2, D3, U, LDU, WORK, LWORK, RESULT, INFO)
SCHKSBSTG
subroutine schkgk(NIN, NOUT)
SCHKGK
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 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 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 sckcsd(NM, MVAL, PVAL, QVAL, NMATS, ISEED, THRESH, MMAX, X, XF, U1, U2, V1T, V2T, THETA, IWORK, WORK, RWORK, NIN, NOUT, INFO)
SCKCSD
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 serrgg(PATH, NUNIT)
SERRGG
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 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 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 schkec(THRESH, TSTERR, NIN, NOUT)
SCHKEC
subroutine serrhs(PATH, NUNIT)
SERRHS
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 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 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 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 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 serrbd(PATH, NUNIT)
SERRBD
subroutine scklse(NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
SCKLSE
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 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 schksb(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, U, LDU, WORK, LWORK, RESULT, INFO)
SCHKSB
subroutine serred(PATH, NUNIT)
SERRED
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 schkgl(NIN, NOUT)
SCHKGL
subroutine serrst(PATH, NUNIT)
SERRST
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 schkbk(NIN, NOUT)
SCHKBK
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 ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
logical function lse(RI, RJ, LR)
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
real function second()
SECOND Using ETIME
real function slamch(CMACH)
SLAMCH