1052 parameter ( nmax = 132 )
1054 parameter ( ncmax = 20 )
1056 parameter ( need = 14 )
1058 parameter ( lwork = nmax*( 5*nmax+5 )+1 )
1060 parameter ( liwork = nmax*( 5*nmax+20 ) )
1062 parameter ( maxin = 20 )
1064 parameter ( maxt = 30 )
1066 parameter ( nin = 5, nout = 6 )
1069 LOGICAL CSD, DBB, DGG, DSB, FATAL, GLM, GQR, GSV, LSE,
1070 $ nep, dbk, dbl, sep, des, dev, dgk, dgl, dgs,
1071 $ dgv, dgx, dsx, svd, dvx, dxv, tstchk, tstdif,
1074 CHARACTER*3 C3, PATH
1078 INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
1079 $ nk, nn, nparms, nrhs, ntypes,
1080 $ vers_major, vers_minor, vers_patch
1081 DOUBLE PRECISION EPS, S1, S2, THRESH, THRSHN
1084 LOGICAL DOTYPE( maxt ), LOGWRK( nmax )
1085 INTEGER IOLDSD( 4 ), ISEED( 4 ), IWORK( liwork ),
1086 $ kval( maxin ), mval( maxin ), mxbval( maxin ),
1087 $ nbcol( maxin ), nbmin( maxin ), nbval( maxin ),
1088 $ nsval( maxin ), nval( maxin ), nxval( maxin ),
1090 INTEGER INMIN( maxin ), INWIN( maxin ), INIBL( maxin ),
1091 $ ishfts( maxin ), iacc22( maxin )
1092 DOUBLE PRECISION A( nmax*nmax, need ), B( nmax*nmax, 5 ),
1093 $ c( ncmax*ncmax, ncmax*ncmax ), d( nmax, 12 ),
1094 $ result( 500 ), taua( nmax ), taub( nmax ),
1095 $ work( lwork ), x( 5*nmax )
1099 DOUBLE PRECISION DLAMCH, DSECND
1100 EXTERNAL lsamen, dlamch, dsecnd
1117 INTEGER INFOT, MAXB, NPROC, NSHIFT, NUNIT, SELDIM,
1121 LOGICAL SELVAL( 20 )
1122 INTEGER IPARMS( 100 )
1123 DOUBLE PRECISION SELWI( 20 ), SELWR( 20 )
1126 COMMON / cenvir / nproc, nshift, maxb
1127 COMMON / infoc / infot, nunit, ok, lerr
1128 COMMON / srnamc / srnamt
1129 COMMON / sslct / selopt, seldim, selval, selwr, selwi
1130 COMMON / claenv / iparms
1133 DATA intstr /
'0123456789' /
1134 DATA ioldsd / 0, 0, 0, 1 /
1152 READ( nin, fmt =
'(A80)', end = 380 )line
1154 nep = lsamen( 3, path,
'NEP' ) .OR. lsamen( 3, path,
'DHS' )
1155 sep = lsamen( 3, path,
'SEP' ) .OR. lsamen( 3, path,
'DST' ) .OR.
1156 $ lsamen( 3, path,
'DSG' )
1157 svd = lsamen( 3, path,
'SVD' ) .OR. lsamen( 3, path,
'DBD' )
1158 dev = lsamen( 3, path,
'DEV' )
1159 des = lsamen( 3, path,
'DES' )
1160 dvx = lsamen( 3, path,
'DVX' )
1161 dsx = lsamen( 3, path,
'DSX' )
1162 dgg = lsamen( 3, path,
'DGG' )
1163 dgs = lsamen( 3, path,
'DGS' )
1164 dgx = lsamen( 3, path,
'DGX' )
1165 dgv = lsamen( 3, path,
'DGV' )
1166 dxv = lsamen( 3, path,
'DXV' )
1167 dsb = lsamen( 3, path,
'DSB' )
1168 dbb = lsamen( 3, path,
'DBB' )
1169 glm = lsamen( 3, path,
'GLM' )
1170 gqr = lsamen( 3, path,
'GQR' ) .OR. lsamen( 3, path,
'GRQ' )
1171 gsv = lsamen( 3, path,
'GSV' )
1172 csd = lsamen( 3, path,
'CSD' )
1173 lse = lsamen( 3, path,
'LSE' )
1174 dbl = lsamen( 3, path,
'DBL' )
1175 dbk = lsamen( 3, path,
'DBK' )
1176 dgl = lsamen( 3, path,
'DGL' )
1177 dgk = lsamen( 3, path,
'DGK' )
1181 IF( path.EQ.
' ' )
THEN
1184 WRITE( nout, fmt = 9987 )
1186 WRITE( nout, fmt = 9986 )
1188 WRITE( nout, fmt = 9985 )
1190 WRITE( nout, fmt = 9979 )
1192 WRITE( nout, fmt = 9978 )
1194 WRITE( nout, fmt = 9977 )
1196 WRITE( nout, fmt = 9976 )
1198 WRITE( nout, fmt = 9975 )
1200 WRITE( nout, fmt = 9964 )
1202 WRITE( nout, fmt = 9965 )
1204 WRITE( nout, fmt = 9963 )
1206 WRITE( nout, fmt = 9962 )
1208 WRITE( nout, fmt = 9974 )
1210 WRITE( nout, fmt = 9967 )
1212 WRITE( nout, fmt = 9971 )
1214 WRITE( nout, fmt = 9970 )
1216 WRITE( nout, fmt = 9969 )
1218 WRITE( nout, fmt = 9960 )
1220 WRITE( nout, fmt = 9968 )
1245 ELSE IF( lsamen( 3, path,
'DEC' ) )
THEN
1249 READ( nin, fmt = * )thresh
1257 CALL dchkec( thresh, tsterr, nin, nout )
1260 WRITE( nout, fmt = 9992 )path
1263 CALL ilaver( vers_major, vers_minor, vers_patch )
1264 WRITE( nout, fmt = 9972 ) vers_major, vers_minor, vers_patch
1265 WRITE( nout, fmt = 9984 )
1269 READ( nin, fmt = * )nn
1271 WRITE( nout, fmt = 9989 )
' NN ', nn, 1
1274 ELSE IF( nn.GT.maxin )
THEN
1275 WRITE( nout, fmt = 9988 )
' NN ', nn, maxin
1282 IF( .NOT.( dgx .OR. dxv ) )
THEN
1283 READ( nin, fmt = * )( mval( i ), i = 1, nn )
1290 IF( mval( i ).LT.0 )
THEN
1291 WRITE( nout, fmt = 9989 )vname, mval( i ), 0
1293 ELSE IF( mval( i ).GT.nmax )
THEN
1294 WRITE( nout, fmt = 9988 )vname, mval( i ), nmax
1298 WRITE( nout, fmt = 9983 )
'M: ', ( mval( i ), i = 1, nn )
1303 IF( glm .OR. gqr .OR. gsv .OR. csd .OR. lse )
THEN
1304 READ( nin, fmt = * )( pval( i ), i = 1, nn )
1306 IF( pval( i ).LT.0 )
THEN
1307 WRITE( nout, fmt = 9989 )
' P ', pval( i ), 0
1309 ELSE IF( pval( i ).GT.nmax )
THEN
1310 WRITE( nout, fmt = 9988 )
' P ', pval( i ), nmax
1314 WRITE( nout, fmt = 9983 )
'P: ', ( pval( i ), i = 1, nn )
1319 IF( svd .OR. dbb .OR. glm .OR. gqr .OR. gsv .OR. csd .OR.
1321 READ( nin, fmt = * )( nval( i ), i = 1, nn )
1323 IF( nval( i ).LT.0 )
THEN
1324 WRITE( nout, fmt = 9989 )
' N ', nval( i ), 0
1326 ELSE IF( nval( i ).GT.nmax )
THEN
1327 WRITE( nout, fmt = 9988 )
' N ', nval( i ), nmax
1333 nval( i ) = mval( i )
1336 IF( .NOT.( dgx .OR. dxv ) )
THEN
1337 WRITE( nout, fmt = 9983 )
'N: ', ( nval( i ), i = 1, nn )
1339 WRITE( nout, fmt = 9983 )
'N: ', nn
1344 IF( dsb .OR. dbb )
THEN
1345 READ( nin, fmt = * )nk
1346 READ( nin, fmt = * )( kval( i ), i = 1, nk )
1348 IF( kval( i ).LT.0 )
THEN
1349 WRITE( nout, fmt = 9989 )
' K ', kval( i ), 0
1351 ELSE IF( kval( i ).GT.nmax )
THEN
1352 WRITE( nout, fmt = 9988 )
' K ', kval( i ), nmax
1356 WRITE( nout, fmt = 9983 )
'K: ', ( kval( i ), i = 1, nk )
1359 IF( dev .OR. des .OR. dvx .OR. dsx )
THEN
1364 READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1365 $ inmin( 1 ), inwin( 1 ), inibl(1), ishfts(1), iacc22(1)
1366 IF( nbval( 1 ).LT.1 )
THEN
1367 WRITE( nout, fmt = 9989 )
' NB ', nbval( 1 ), 1
1369 ELSE IF( nbmin( 1 ).LT.1 )
THEN
1370 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( 1 ), 1
1372 ELSE IF( nxval( 1 ).LT.1 )
THEN
1373 WRITE( nout, fmt = 9989 )
' NX ', nxval( 1 ), 1
1375 ELSE IF( inmin( 1 ).LT.1 )
THEN
1376 WRITE( nout, fmt = 9989 )
' INMIN ', inmin( 1 ), 1
1378 ELSE IF( inwin( 1 ).LT.1 )
THEN
1379 WRITE( nout, fmt = 9989 )
' INWIN ', inwin( 1 ), 1
1381 ELSE IF( inibl( 1 ).LT.1 )
THEN
1382 WRITE( nout, fmt = 9989 )
' INIBL ', inibl( 1 ), 1
1384 ELSE IF( ishfts( 1 ).LT.1 )
THEN
1385 WRITE( nout, fmt = 9989 )
' ISHFTS ', ishfts( 1 ), 1
1387 ELSE IF( iacc22( 1 ).LT.0 )
THEN
1388 WRITE( nout, fmt = 9989 )
' IACC22 ', iacc22( 1 ), 0
1391 CALL xlaenv( 1, nbval( 1 ) )
1392 CALL xlaenv( 2, nbmin( 1 ) )
1393 CALL xlaenv( 3, nxval( 1 ) )
1394 CALL xlaenv(12, max( 11, inmin( 1 ) ) )
1395 CALL xlaenv(13, inwin( 1 ) )
1396 CALL xlaenv(14, inibl( 1 ) )
1397 CALL xlaenv(15, ishfts( 1 ) )
1398 CALL xlaenv(16, iacc22( 1 ) )
1399 WRITE( nout, fmt = 9983 )
'NB: ', nbval( 1 )
1400 WRITE( nout, fmt = 9983 )
'NBMIN:', nbmin( 1 )
1401 WRITE( nout, fmt = 9983 )
'NX: ', nxval( 1 )
1402 WRITE( nout, fmt = 9983 )
'INMIN: ', inmin( 1 )
1403 WRITE( nout, fmt = 9983 )
'INWIN: ', inwin( 1 )
1404 WRITE( nout, fmt = 9983 )
'INIBL: ', inibl( 1 )
1405 WRITE( nout, fmt = 9983 )
'ISHFTS: ', ishfts( 1 )
1406 WRITE( nout, fmt = 9983 )
'IACC22: ', iacc22( 1 )
1408 ELSEIF( dgs .OR. dgx .OR. dgv .OR. dxv )
THEN
1413 READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1414 $ nsval( 1 ), mxbval( 1 )
1415 IF( nbval( 1 ).LT.1 )
THEN
1416 WRITE( nout, fmt = 9989 )
' NB ', nbval( 1 ), 1
1418 ELSE IF( nbmin( 1 ).LT.1 )
THEN
1419 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( 1 ), 1
1421 ELSE IF( nxval( 1 ).LT.1 )
THEN
1422 WRITE( nout, fmt = 9989 )
' NX ', nxval( 1 ), 1
1424 ELSE IF( nsval( 1 ).LT.2 )
THEN
1425 WRITE( nout, fmt = 9989 )
' NS ', nsval( 1 ), 2
1427 ELSE IF( mxbval( 1 ).LT.1 )
THEN
1428 WRITE( nout, fmt = 9989 )
' MAXB ', mxbval( 1 ), 1
1431 CALL xlaenv( 1, nbval( 1 ) )
1432 CALL xlaenv( 2, nbmin( 1 ) )
1433 CALL xlaenv( 3, nxval( 1 ) )
1434 CALL xlaenv( 4, nsval( 1 ) )
1435 CALL xlaenv( 8, mxbval( 1 ) )
1436 WRITE( nout, fmt = 9983 )
'NB: ', nbval( 1 )
1437 WRITE( nout, fmt = 9983 )
'NBMIN:', nbmin( 1 )
1438 WRITE( nout, fmt = 9983 )
'NX: ', nxval( 1 )
1439 WRITE( nout, fmt = 9983 )
'NS: ', nsval( 1 )
1440 WRITE( nout, fmt = 9983 )
'MAXB: ', mxbval( 1 )
1442 ELSE IF( .NOT.dsb .AND. .NOT.glm .AND. .NOT.gqr .AND. .NOT.
1443 $ gsv .AND. .NOT.csd .AND. .NOT.lse )
THEN
1448 READ( nin, fmt = * )nparms
1449 IF( nparms.LT.1 )
THEN
1450 WRITE( nout, fmt = 9989 )
'NPARMS', nparms, 1
1453 ELSE IF( nparms.GT.maxin )
THEN
1454 WRITE( nout, fmt = 9988 )
'NPARMS', nparms, maxin
1462 READ( nin, fmt = * )( nbval( i ), i = 1, nparms )
1464 IF( nbval( i ).LT.0 )
THEN
1465 WRITE( nout, fmt = 9989 )
' NB ', nbval( i ), 0
1467 ELSE IF( nbval( i ).GT.nmax )
THEN
1468 WRITE( nout, fmt = 9988 )
' NB ', nbval( i ), nmax
1472 WRITE( nout, fmt = 9983 )
'NB: ',
1473 $ ( nbval( i ), i = 1, nparms )
1478 IF( nep .OR. sep .OR. svd .OR. dgg )
THEN
1479 READ( nin, fmt = * )( nbmin( i ), i = 1, nparms )
1481 IF( nbmin( i ).LT.0 )
THEN
1482 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( i ), 0
1484 ELSE IF( nbmin( i ).GT.nmax )
THEN
1485 WRITE( nout, fmt = 9988 )
'NBMIN ', nbmin( i ), nmax
1489 WRITE( nout, fmt = 9983 )
'NBMIN:',
1490 $ ( nbmin( i ), i = 1, nparms )
1499 IF( nep .OR. sep .OR. svd )
THEN
1500 READ( nin, fmt = * )( nxval( i ), i = 1, nparms )
1501 DO 100 i = 1, nparms
1502 IF( nxval( i ).LT.0 )
THEN
1503 WRITE( nout, fmt = 9989 )
' NX ', nxval( i ), 0
1505 ELSE IF( nxval( i ).GT.nmax )
THEN
1506 WRITE( nout, fmt = 9988 )
' NX ', nxval( i ), nmax
1510 WRITE( nout, fmt = 9983 )
'NX: ',
1511 $ ( nxval( i ), i = 1, nparms )
1513 DO 110 i = 1, nparms
1521 IF( svd .OR. dbb .OR. dgg )
THEN
1522 READ( nin, fmt = * )( nsval( i ), i = 1, nparms )
1523 DO 120 i = 1, nparms
1524 IF( nsval( i ).LT.0 )
THEN
1525 WRITE( nout, fmt = 9989 )
' NS ', nsval( i ), 0
1527 ELSE IF( nsval( i ).GT.nmax )
THEN
1528 WRITE( nout, fmt = 9988 )
' NS ', nsval( i ), nmax
1532 WRITE( nout, fmt = 9983 )
'NS: ',
1533 $ ( nsval( i ), i = 1, nparms )
1535 DO 130 i = 1, nparms
1543 READ( nin, fmt = * )( mxbval( i ), i = 1, nparms )
1544 DO 140 i = 1, nparms
1545 IF( mxbval( i ).LT.0 )
THEN
1546 WRITE( nout, fmt = 9989 )
' MAXB ', mxbval( i ), 0
1548 ELSE IF( mxbval( i ).GT.nmax )
THEN
1549 WRITE( nout, fmt = 9988 )
' MAXB ', mxbval( i ), nmax
1553 WRITE( nout, fmt = 9983 )
'MAXB: ',
1554 $ ( mxbval( i ), i = 1, nparms )
1556 DO 150 i = 1, nparms
1564 READ( nin, fmt = * )( inmin( i ), i = 1, nparms )
1565 DO 540 i = 1, nparms
1566 IF( inmin( i ).LT.0 )
THEN
1567 WRITE( nout, fmt = 9989 )
' INMIN ', inmin( i ), 0
1571 WRITE( nout, fmt = 9983 )
'INMIN: ',
1572 $ ( inmin( i ), i = 1, nparms )
1574 DO 550 i = 1, nparms
1582 READ( nin, fmt = * )( inwin( i ), i = 1, nparms )
1583 DO 560 i = 1, nparms
1584 IF( inwin( i ).LT.0 )
THEN
1585 WRITE( nout, fmt = 9989 )
' INWIN ', inwin( i ), 0
1589 WRITE( nout, fmt = 9983 )
'INWIN: ',
1590 $ ( inwin( i ), i = 1, nparms )
1592 DO 570 i = 1, nparms
1600 READ( nin, fmt = * )( inibl( i ), i = 1, nparms )
1601 DO 580 i = 1, nparms
1602 IF( inibl( i ).LT.0 )
THEN
1603 WRITE( nout, fmt = 9989 )
' INIBL ', inibl( i ), 0
1607 WRITE( nout, fmt = 9983 )
'INIBL: ',
1608 $ ( inibl( i ), i = 1, nparms )
1610 DO 590 i = 1, nparms
1618 READ( nin, fmt = * )( ishfts( i ), i = 1, nparms )
1619 DO 600 i = 1, nparms
1620 IF( ishfts( i ).LT.0 )
THEN
1621 WRITE( nout, fmt = 9989 )
' ISHFTS ', ishfts( i ), 0
1625 WRITE( nout, fmt = 9983 )
'ISHFTS: ',
1626 $ ( ishfts( i ), i = 1, nparms )
1628 DO 610 i = 1, nparms
1635 IF( nep .OR. dgg )
THEN
1636 READ( nin, fmt = * )( iacc22( i ), i = 1, nparms )
1637 DO 620 i = 1, nparms
1638 IF( iacc22( i ).LT.0 )
THEN
1639 WRITE( nout, fmt = 9989 )
' IACC22 ', iacc22( i ), 0
1643 WRITE( nout, fmt = 9983 )
'IACC22: ',
1644 $ ( iacc22( i ), i = 1, nparms )
1646 DO 630 i = 1, nparms
1654 READ( nin, fmt = * )( nbcol( i ), i = 1, nparms )
1655 DO 160 i = 1, nparms
1656 IF( nbcol( i ).LT.0 )
THEN
1657 WRITE( nout, fmt = 9989 )
'NBCOL ', nbcol( i ), 0
1659 ELSE IF( nbcol( i ).GT.nmax )
THEN
1660 WRITE( nout, fmt = 9988 )
'NBCOL ', nbcol( i ), nmax
1664 WRITE( nout, fmt = 9983 )
'NBCOL:',
1665 $ ( nbcol( i ), i = 1, nparms )
1667 DO 170 i = 1, nparms
1675 WRITE( nout, fmt = * )
1676 eps = dlamch(
'Underflow threshold' )
1677 WRITE( nout, fmt = 9981 )
'underflow', eps
1678 eps = dlamch(
'Overflow threshold' )
1679 WRITE( nout, fmt = 9981 )
'overflow ', eps
1680 eps = dlamch(
'Epsilon' )
1681 WRITE( nout, fmt = 9981 )
'precision', eps
1685 READ( nin, fmt = * )thresh
1686 WRITE( nout, fmt = 9982 )thresh
1687 IF( sep .OR. svd .OR. dgg )
THEN
1691 READ( nin, fmt = * )tstchk
1695 READ( nin, fmt = * )tstdrv
1700 READ( nin, fmt = * )tsterr
1704 READ( nin, fmt = * )newsd
1709 $
READ( nin, fmt = * )( ioldsd( i ), i = 1, 4 )
1712 iseed( i ) = ioldsd( i )
1716 WRITE( nout, fmt = 9999 )
1727 IF( .NOT.( dgx .OR. dxv ) )
THEN
1730 READ( nin, fmt =
'(A80)', end = 380 )line
1738 IF( i.GT.lenp )
THEN
1746 IF( line( i: i ).NE.
' ' .AND. line( i: i ).NE.
',' )
THEN
1753 IF( c1.EQ.intstr( k: k ) )
THEN
1758 WRITE( nout, fmt = 9991 )i, line
1763 ELSE IF( i1.GT.0 )
THEN
1773 IF( .NOT.( dev .OR. des .OR. dvx .OR. dsx .OR. dgv .OR.
1774 $ dgs ) .AND. ntypes.LE.0 )
THEN
1775 WRITE( nout, fmt = 9990 )c3
1788 IF( newsd.EQ.0 )
THEN
1790 iseed( k ) = ioldsd( k )
1794 IF( lsamen( 3, c3,
'DHS' ) .OR. lsamen( 3, c3,
'NEP' ) )
THEN
1807 ntypes = min( maxtyp, ntypes )
1808 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1811 $
CALL derrhs(
'DHSEQR', nout )
1812 DO 270 i = 1, nparms
1813 CALL xlaenv( 1, nbval( i ) )
1814 CALL xlaenv( 2, nbmin( i ) )
1815 CALL xlaenv( 3, nxval( i ) )
1816 CALL xlaenv(12, max( 11, inmin( i ) ) )
1817 CALL xlaenv(13, inwin( i ) )
1818 CALL xlaenv(14, inibl( i ) )
1819 CALL xlaenv(15, ishfts( i ) )
1820 CALL xlaenv(16, iacc22( i ) )
1822 IF( newsd.EQ.0 )
THEN
1824 iseed( k ) = ioldsd( k )
1827 WRITE( nout, fmt = 9961 )c3, nbval( i ), nbmin( i ),
1828 $ nxval( i ), max( 11, inmin(i)),
1829 $ inwin( i ), inibl( i ), ishfts( i ), iacc22( i )
1830 CALL dchkhs( nn, nval, maxtyp, dotype, iseed, thresh, nout,
1831 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
1832 $ a( 1, 4 ), a( 1, 5 ), nmax, a( 1, 6 ),
1833 $ a( 1, 7 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
1834 $ d( 1, 4 ), d( 1, 5 ), d( 1, 6 ), a( 1, 8 ),
1835 $ a( 1, 9 ), a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
1836 $ d( 1, 7 ), work, lwork, iwork, logwrk, result,
1839 $
WRITE( nout, fmt = 9980 )
'DCHKHS', info
1842 ELSE IF( lsamen( 3, c3,
'DST' ) .OR. lsamen( 3, c3,
'SEP' ) )
THEN
1853 ntypes = min( maxtyp, ntypes )
1854 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1858 $
CALL derrst(
'DST', nout )
1859 DO 290 i = 1, nparms
1860 CALL xlaenv( 1, nbval( i ) )
1861 CALL xlaenv( 2, nbmin( i ) )
1862 CALL xlaenv( 3, nxval( i ) )
1864 IF( newsd.EQ.0 )
THEN
1866 iseed( k ) = ioldsd( k )
1869 WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1872 CALL dchkst( nn, nval, maxtyp, dotype, iseed, thresh,
1873 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
1874 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
1875 $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
1876 $ d( 1, 10 ), d( 1, 11 ), a( 1, 3 ), nmax,
1877 $ a( 1, 4 ), a( 1, 5 ), d( 1, 12 ), a( 1, 6 ),
1878 $ work, lwork, iwork, liwork, result, info )
1880 $
WRITE( nout, fmt = 9980 )
'DCHKST', info
1883 CALL ddrvst( nn, nval, 18, dotype, iseed, thresh, nout,
1884 $ a( 1, 1 ), nmax, d( 1, 3 ), d( 1, 4 ),
1885 $ d( 1, 5 ), d( 1, 6 ), d( 1, 8 ), d( 1, 9 ),
1886 $ d( 1, 10 ), d( 1, 11 ), a( 1, 2 ), nmax,
1887 $ a( 1, 3 ), d( 1, 12 ), a( 1, 4 ), work,
1888 $ lwork, iwork, liwork, result, info )
1890 $
WRITE( nout, fmt = 9980 )
'DDRVST', info
1894 ELSE IF( lsamen( 3, c3,
'DSG' ) )
THEN
1905 ntypes = min( maxtyp, ntypes )
1906 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1908 DO 310 i = 1, nparms
1909 CALL xlaenv( 1, nbval( i ) )
1910 CALL xlaenv( 2, nbmin( i ) )
1911 CALL xlaenv( 3, nxval( i ) )
1913 IF( newsd.EQ.0 )
THEN
1915 iseed( k ) = ioldsd( k )
1918 WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1921 CALL ddrvsg( nn, nval, maxtyp, dotype, iseed, thresh,
1922 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
1923 $ d( 1, 3 ), a( 1, 3 ), nmax, a( 1, 4 ),
1924 $ a( 1, 5 ), a( 1, 6 ), a( 1, 7 ), work,
1925 $ lwork, iwork, liwork, result, info )
1927 $
WRITE( nout, fmt = 9980 )
'DDRVSG', info
1931 ELSE IF( lsamen( 3, c3,
'DBD' ) .OR. lsamen( 3, c3,
'SVD' ) )
THEN
1943 ntypes = min( maxtyp, ntypes )
1944 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1950 IF( tsterr .AND. tstchk )
1951 $
CALL derrbd(
'DBD', nout )
1952 IF( tsterr .AND. tstdrv )
1953 $
CALL derred(
'DBD', nout )
1955 DO 330 i = 1, nparms
1957 CALL xlaenv( 1, nbval( i ) )
1958 CALL xlaenv( 2, nbmin( i ) )
1959 CALL xlaenv( 3, nxval( i ) )
1960 IF( newsd.EQ.0 )
THEN
1962 iseed( k ) = ioldsd( k )
1965 WRITE( nout, fmt = 9995 )c3, nbval( i ), nbmin( i ),
1968 CALL dchkbd( nn, mval, nval, maxtyp, dotype, nrhs, iseed,
1969 $ thresh, a( 1, 1 ), nmax, d( 1, 1 ),
1970 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 2 ),
1971 $ nmax, a( 1, 3 ), a( 1, 4 ), a( 1, 5 ), nmax,
1972 $ a( 1, 6 ), nmax, a( 1, 7 ), a( 1, 8 ), work,
1973 $ lwork, iwork, nout, info )
1975 $
WRITE( nout, fmt = 9980 )
'DCHKBD', info
1978 $
CALL ddrvbd( nn, mval, nval, maxtyp, dotype, iseed,
1979 $ thresh, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
1980 $ a( 1, 3 ), nmax, a( 1, 4 ), a( 1, 5 ),
1981 $ a( 1, 6 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
1982 $ work, lwork, iwork, nout, info )
1985 ELSE IF( lsamen( 3, c3,
'DEV' ) )
THEN
1993 ntypes = min( maxtyp, ntypes )
1994 IF( ntypes.LE.0 )
THEN
1995 WRITE( nout, fmt = 9990 )c3
1998 $
CALL derred( c3, nout )
1999 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2000 CALL ddrvev( nn, nval, ntypes, dotype, iseed, thresh, nout,
2001 $ a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
2002 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 3 ),
2003 $ nmax, a( 1, 4 ), nmax, a( 1, 5 ), nmax, result,
2004 $ work, lwork, iwork, info )
2006 $
WRITE( nout, fmt = 9980 )
'DGEEV', info
2008 WRITE( nout, fmt = 9973 )
2011 ELSE IF( lsamen( 3, c3,
'DES' ) )
THEN
2019 ntypes = min( maxtyp, ntypes )
2020 IF( ntypes.LE.0 )
THEN
2021 WRITE( nout, fmt = 9990 )c3
2024 $
CALL derred( c3, nout )
2025 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2026 CALL ddrves( nn, nval, ntypes, dotype, iseed, thresh, nout,
2027 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2028 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2029 $ a( 1, 4 ), nmax, result, work, lwork, iwork,
2032 $
WRITE( nout, fmt = 9980 )
'DGEES', info
2034 WRITE( nout, fmt = 9973 )
2037 ELSE IF( lsamen( 3, c3,
'DVX' ) )
THEN
2045 ntypes = min( maxtyp, ntypes )
2046 IF( ntypes.LT.0 )
THEN
2047 WRITE( nout, fmt = 9990 )c3
2050 $
CALL derred( c3, nout )
2051 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2052 CALL ddrvvx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2053 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
2054 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 3 ),
2055 $ nmax, a( 1, 4 ), nmax, a( 1, 5 ), nmax,
2056 $ d( 1, 5 ), d( 1, 6 ), d( 1, 7 ), d( 1, 8 ),
2057 $ d( 1, 9 ), d( 1, 10 ), d( 1, 11 ), d( 1, 12 ),
2058 $ result, work, lwork, iwork, info )
2060 $
WRITE( nout, fmt = 9980 )
'DGEEVX', info
2062 WRITE( nout, fmt = 9973 )
2065 ELSE IF( lsamen( 3, c3,
'DSX' ) )
THEN
2073 ntypes = min( maxtyp, ntypes )
2074 IF( ntypes.LT.0 )
THEN
2075 WRITE( nout, fmt = 9990 )c3
2078 $
CALL derred( c3, nout )
2079 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2080 CALL ddrvsx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2081 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2082 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2083 $ d( 1, 5 ), d( 1, 6 ), a( 1, 4 ), nmax,
2084 $ a( 1, 5 ), result, work, lwork, iwork, logwrk,
2087 $
WRITE( nout, fmt = 9980 )
'DGEESX', info
2089 WRITE( nout, fmt = 9973 )
2092 ELSE IF( lsamen( 3, c3,
'DGG' ) )
THEN
2106 ntypes = min( maxtyp, ntypes )
2107 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2109 IF( tstchk .AND. tsterr )
2110 $
CALL derrgg( c3, nout )
2111 DO 350 i = 1, nparms
2112 CALL xlaenv( 1, nbval( i ) )
2113 CALL xlaenv( 2, nbmin( i ) )
2114 CALL xlaenv( 4, nsval( i ) )
2115 CALL xlaenv( 8, mxbval( i ) )
2116 CALL xlaenv( 16, iacc22( i ) )
2117 CALL xlaenv( 5, nbcol( i ) )
2119 IF( newsd.EQ.0 )
THEN
2121 iseed( k ) = ioldsd( k )
2124 WRITE( nout, fmt = 9996 )c3, nbval( i ), nbmin( i ),
2125 $ nsval( i ), mxbval( i ), iacc22( i ), nbcol( i )
2129 CALL dchkgg( nn, nval, maxtyp, dotype, iseed, thresh,
2130 $ tstdif, thrshn, nout, a( 1, 1 ), nmax,
2131 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2132 $ a( 1, 6 ), a( 1, 7 ), a( 1, 8 ), a( 1, 9 ),
2133 $ nmax, a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
2134 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2135 $ d( 1, 5 ), d( 1, 6 ), a( 1, 13 ),
2136 $ a( 1, 14 ), work, lwork, logwrk, result,
2139 $
WRITE( nout, fmt = 9980 )
'DCHKGG', info
2143 ELSE IF( lsamen( 3, c3,
'DGS' ) )
THEN
2151 ntypes = min( maxtyp, ntypes )
2152 IF( ntypes.LE.0 )
THEN
2153 WRITE( nout, fmt = 9990 )c3
2156 $
CALL derrgg( c3, nout )
2157 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2158 CALL ddrges( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2159 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2160 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2161 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), work, lwork,
2162 $ result, logwrk, info )
2164 $
WRITE( nout, fmt = 9980 )
'DDRGES', info
2169 CALL ddrges3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2170 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2171 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2172 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), work, lwork,
2173 $ result, logwrk, info )
2175 $
WRITE( nout, fmt = 9980 )
'DDRGES3', info
2177 WRITE( nout, fmt = 9973 )
2190 WRITE( nout, fmt = 9990 )c3
2193 $
CALL derrgg( c3, nout )
2194 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2196 CALL ddrgsx( nn, ncmax, thresh, nin, nout, a( 1, 1 ), nmax,
2197 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2198 $ a( 1, 6 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
2199 $ c( 1, 1 ), ncmax*ncmax, a( 1, 12 ), work,
2200 $ lwork, iwork, liwork, logwrk, info )
2202 $
WRITE( nout, fmt = 9980 )
'DDRGSX', info
2204 WRITE( nout, fmt = 9973 )
2207 ELSE IF( lsamen( 3, c3,
'DGV' ) )
THEN
2215 ntypes = min( maxtyp, ntypes )
2216 IF( ntypes.LE.0 )
THEN
2217 WRITE( nout, fmt = 9990 )c3
2220 $
CALL derrgg( c3, nout )
2221 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2222 CALL ddrgev( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2223 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2224 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2225 $ a( 1, 9 ), nmax, d( 1, 1 ), d( 1, 2 ),
2226 $ d( 1, 3 ), d( 1, 4 ), d( 1, 5 ), d( 1, 6 ),
2227 $ work, lwork, result, info )
2229 $
WRITE( nout, fmt = 9980 )
'DDRGEV', info
2233 CALL ddrgev3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2234 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2235 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2236 $ a( 1, 9 ), nmax, d( 1, 1 ), d( 1, 2 ),
2237 $ d( 1, 3 ), d( 1, 4 ), d( 1, 5 ), d( 1, 6 ),
2238 $ work, lwork, result, info )
2240 $
WRITE( nout, fmt = 9980 )
'DDRGEV3', info
2242 WRITE( nout, fmt = 9973 )
2255 WRITE( nout, fmt = 9990 )c3
2258 $
CALL derrgg( c3, nout )
2259 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2260 CALL ddrgvx( nn, thresh, nin, nout, a( 1, 1 ), nmax,
2261 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), d( 1, 1 ),
2262 $ d( 1, 2 ), d( 1, 3 ), a( 1, 5 ), a( 1, 6 ),
2263 $ iwork( 1 ), iwork( 2 ), d( 1, 4 ), d( 1, 5 ),
2264 $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
2265 $ work, lwork, iwork( 3 ), liwork-2, result,
2269 $
WRITE( nout, fmt = 9980 )
'DDRGVX', info
2271 WRITE( nout, fmt = 9973 )
2274 ELSE IF( lsamen( 3, c3,
'DSB' ) )
THEN
2281 ntypes = min( maxtyp, ntypes )
2282 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2284 $
CALL derrst(
'DSB', nout )
2285 CALL dchksb( nn, nval, nk, kval, maxtyp, dotype, iseed, thresh,
2286 $ nout, a( 1, 1 ), nmax, d( 1, 1 ), d( 1, 2 ),
2287 $ a( 1, 2 ), nmax, work, lwork, result, info )
2289 $
WRITE( nout, fmt = 9980 )
'DCHKSB', info
2291 ELSE IF( lsamen( 3, c3,
'DBB' ) )
THEN
2298 ntypes = min( maxtyp, ntypes )
2299 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2300 DO 370 i = 1, nparms
2303 IF( newsd.EQ.0 )
THEN
2305 iseed( k ) = ioldsd( k )
2308 WRITE( nout, fmt = 9966 )c3, nrhs
2309 CALL dchkbb( nn, mval, nval, nk, kval, maxtyp, dotype, nrhs,
2310 $ iseed, thresh, nout, a( 1, 1 ), nmax,
2311 $ a( 1, 2 ), 2*nmax, d( 1, 1 ), d( 1, 2 ),
2312 $ a( 1, 4 ), nmax, a( 1, 5 ), nmax, a( 1, 6 ),
2313 $ nmax, a( 1, 7 ), work, lwork, result, info )
2315 $
WRITE( nout, fmt = 9980 )
'DCHKBB', info
2318 ELSE IF( lsamen( 3, c3,
'GLM' ) )
THEN
2326 $
CALL derrgg(
'GLM', nout )
2327 CALL dckglm( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2328 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2329 $ work, d( 1, 1 ), nin, nout, info )
2331 $
WRITE( nout, fmt = 9980 )
'DCKGLM', info
2333 ELSE IF( lsamen( 3, c3,
'GQR' ) )
THEN
2341 $
CALL derrgg(
'GQR', nout )
2342 CALL dckgqr( nn, mval, nn, pval, nn, nval, ntypes, iseed,
2343 $ thresh, nmax, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
2344 $ a( 1, 4 ), taua, b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
2345 $ b( 1, 4 ), b( 1, 5 ), taub, work, d( 1, 1 ), nin,
2348 $
WRITE( nout, fmt = 9980 )
'DCKGQR', info
2350 ELSE IF( lsamen( 3, c3,
'GSV' ) )
THEN
2358 $
CALL derrgg(
'GSV', nout )
2359 CALL dckgsv( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2360 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
2361 $ a( 1, 3 ), b( 1, 3 ), a( 1, 4 ), taua, taub,
2362 $ b( 1, 4 ), iwork, work, d( 1, 1 ), nin, nout,
2365 $
WRITE( nout, fmt = 9980 )
'DCKGSV', info
2367 ELSE IF( lsamen( 3, c3,
'CSD' ) )
THEN
2375 $
CALL derrgg(
'CSD', nout )
2376 CALL dckcsd( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2377 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), a( 1, 4 ),
2378 $ a( 1, 5 ), a( 1, 6 ), a( 1, 7 ), iwork, work,
2379 $ d( 1, 1 ), nin, nout, info )
2381 $
WRITE( nout, fmt = 9980 )
'DCKCSD', info
2383 ELSE IF( lsamen( 3, c3,
'LSE' ) )
THEN
2391 $
CALL derrgg(
'LSE', nout )
2392 CALL dcklse( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2393 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2394 $ work, d( 1, 1 ), nin, nout, info )
2396 $
WRITE( nout, fmt = 9980 )
'DCKLSE', info
2399 WRITE( nout, fmt = * )
2400 WRITE( nout, fmt = * )
2401 WRITE( nout, fmt = 9992 )c3
2403 IF( .NOT.( dgx .OR. dxv ) )
2406 WRITE( nout, fmt = 9994 )
2408 WRITE( nout, fmt = 9993 )s2 - s1
2410 9999
FORMAT( /
' Execution not attempted due to input errors' )
2411 9997
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4 )
2412 9996
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NS =', i4,
2413 $
', MAXB =', i4,
', IACC22 =', i4,
', NBCOL =', i4 )
2414 9995
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2416 9994
FORMAT( / /
' End of tests' )
2417 9993
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
2418 9992
FORMAT( 1x, a3,
': Unrecognized path name' )
2419 9991
FORMAT( / /
' *** Invalid integer value in column ', i2,
2420 $
' of input',
' line:', / a79 )
2421 9990
FORMAT( / / 1x, a3,
' routines were not tested' )
2422 9989
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be >=',
2424 9988
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be <=',
2426 9987
FORMAT(
' Tests of the Nonsymmetric Eigenvalue Problem routines' )
2427 9986
FORMAT(
' Tests of the Symmetric Eigenvalue Problem routines' )
2428 9985
FORMAT(
' Tests of the Singular Value Decomposition routines' )
2429 9984
FORMAT( /
' The following parameter values will be used:' )
2430 9983
FORMAT( 4x, a, 10i6, / 10x, 10i6 )
2431 9982
FORMAT( /
' Routines pass computational tests if test ratio is ',
2432 $
'less than', f8.2, / )
2433 9981
FORMAT(
' Relative machine ', a,
' is taken to be', d16.6 )
2434 9980
FORMAT(
' *** Error code from ', a,
' = ', i4 )
2435 9979
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2436 $ /
' DGEEV (eigenvalues and eigevectors)' )
2437 9978
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2438 $ /
' DGEES (Schur form)' )
2439 9977
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2440 $
' Driver', /
' DGEEVX (eigenvalues, eigenvectors and',
2441 $
' condition numbers)' )
2442 9976
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2443 $
' Driver', /
' DGEESX (Schur form and condition',
2445 9975
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2446 $
'Problem routines' )
2447 9974
FORMAT(
' Tests of DSBTRD', /
' (reduction of a symmetric band ',
2448 $
'matrix to tridiagonal form)' )
2449 9973
FORMAT( / 1x, 71(
'-' ) )
2450 9972
FORMAT( /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1 )
2451 9971
FORMAT( /
' Tests of the Generalized Linear Regression Model ',
2453 9970
FORMAT( /
' Tests of the Generalized QR and RQ routines' )
2454 9969
FORMAT( /
' Tests of the Generalized Singular Value',
2455 $
' Decomposition routines' )
2456 9968
FORMAT( /
' Tests of the Linear Least Squares routines' )
2457 9967
FORMAT(
' Tests of DGBBRD', /
' (reduction of a general band ',
2458 $
'matrix to real bidiagonal form)' )
2459 9966
FORMAT( / / 1x, a3,
': NRHS =', i4 )
2460 9965
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2461 $
'Problem Expert Driver DGGESX' )
2462 9964
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2463 $
'Problem Driver DGGES' )
2464 9963
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2465 $
'Problem Driver DGGEV' )
2466 9962
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2467 $
'Problem Expert Driver DGGEVX' )
2468 9961
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2470 $
', INWIN =', i4,
', INIBL =', i4,
', ISHFTS =', i4,
2472 9960
FORMAT( /
' Tests of the CS Decomposition routines' )
subroutine ddrvbd(NSIZES, MM, NN, NTYPES, DOTYPE, ISEED, THRESH, A, LDA, U, LDU, VT, LDVT, ASAV, USAV, VTSAV, S, SSAV, E, WORK, LWORK, IWORK, NOUT, INFO)
DDRVBD
subroutine dckgsv(NM, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, U, V, Q, ALPHA, BETA, R, IWORK, WORK, RWORK, NIN, NOUT, INFO)
DCKGSV
subroutine dchkbd(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)
DCHKBD
subroutine ddrges3(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, S, T, Q, LDQ, Z, ALPHAR, ALPHAI, BETA, WORK, LWORK, RESULT, BWORK, INFO)
DDRGES3
subroutine dchkgl(NIN, NOUT)
DCHKGL
subroutine dckgqr(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)
DCKGQR
subroutine ddrvev(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)
DDRVEV
subroutine ddrges(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, S, T, Q, LDQ, Z, ALPHAR, ALPHAI, BETA, WORK, LWORK, RESULT, BWORK, INFO)
DDRGES
subroutine dchkec(THRESH, TSTERR, NIN, NOUT)
DCHKEC
subroutine dchkst(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)
DCHKST
subroutine dcklse(NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
DCKLSE
subroutine dckglm(NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
DCKGLM
subroutine dchkgg(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)
DCHKGG
subroutine dchkbb(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)
DCHKBB
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
subroutine ddrvsg(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, B, LDB, D, Z, LDZ, AB, BB, AP, BP, WORK, NWORK, IWORK, LIWORK, RESULT, INFO)
DDRVSG
subroutine dchkhs(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)
DCHKHS
subroutine dckcsd(NM, MVAL, PVAL, QVAL, NMATS, ISEED, THRESH, MMAX, X, XF, U1, U2, V1T, V2T, THETA, IWORK, WORK, RWORK, NIN, NOUT, INFO)
DCKCSD
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
subroutine dchksb(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, U, LDU, WORK, LWORK, RESULT, INFO)
DCHKSB
subroutine ddrgev3(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)
DDRGEV3
subroutine derred(PATH, NUNIT)
DERRED
subroutine ddrves(NSIZES, NN, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, H, HT, WR, WI, WRT, WIT, VS, LDVS, RESULT, WORK, NWORK, IWORK, BWORK, INFO)
DDRVES
subroutine derrbd(PATH, NUNIT)
DERRBD
subroutine ddrvsx(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)
DDRVSX
subroutine derrgg(PATH, NUNIT)
DERRGG
subroutine derrst(PATH, NUNIT)
DERRST
subroutine ddrgvx(NSIZE, THRESH, NIN, NOUT, A, LDA, B, AI, BI, ALPHAR, ALPHAI, BETA, VL, VR, ILO, IHI, LSCALE, RSCALE, S, DTRU, DIF, DIFTRU, WORK, LWORK, IWORK, LIWORK, RESULT, BWORK, INFO)
DDRGVX
subroutine ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
subroutine ddrgev(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)
DDRGEV
subroutine dchkbl(NIN, NOUT)
DCHKBL
subroutine derrhs(PATH, NUNIT)
DERRHS
subroutine dchkgk(NIN, NOUT)
DCHKGK
subroutine ddrvvx(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)
DDRVVX
subroutine dchkbk(NIN, NOUT)
DCHKBK
subroutine ddrgsx(NSIZE, NCMAX, THRESH, NIN, NOUT, A, LDA, B, AI, BI, Z, Q, ALPHAR, ALPHAI, BETA, C, LDC, S, WORK, LWORK, IWORK, LIWORK, BWORK, INFO)
DDRGSX
subroutine ddrvst(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)
DDRVST