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, dbb, dgg, dsb, fatal, glm, gqr, gsv,
lse,
1071 $ nep, dbk, dbl, sep, des, dev, dgk, dgl, dgs,
1072 $ dgv, dgx, dsx, svd, dvx, dxv, 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 DOUBLE PRECISION 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 DOUBLE PRECISION d( nmax, 12 ), result( 500 ), taua( nmax ),
1095 $ taub( nmax ), x( 5*nmax )
1098 INTEGER allocatestatus
1099 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: work
1100 DOUBLE PRECISION,
DIMENSION(:,:),
ALLOCATABLE :: a, b, c
1123 INTEGER infot, maxb, nproc, nshift, nunit, seldim,
1127 LOGICAL selval( 20 )
1128 INTEGER iparms( 100 )
1129 DOUBLE PRECISION selwi( 20 ), selwr( 20 )
1132 COMMON / cenvir / nproc, nshift, maxb
1133 COMMON / infoc / infot, nunit, ok, lerr
1134 COMMON / srnamc / srnamt
1135 COMMON / sslct / selopt, seldim, selval, selwr, selwi
1136 COMMON / claenv / iparms
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,
'DHS' )
1172 sep =
lsamen( 3, path,
'SEP' ) .OR.
lsamen( 3, path,
'DST' ) .OR.
1173 $
lsamen( 3, path,
'DSG' ) .OR.
lsamen( 3, path,
'SE2' )
1174 svd =
lsamen( 3, path,
'SVD' ) .OR.
lsamen( 3, path,
'DBD' )
1175 dev =
lsamen( 3, path,
'DEV' )
1176 des =
lsamen( 3, path,
'DES' )
1177 dvx =
lsamen( 3, path,
'DVX' )
1178 dsx =
lsamen( 3, path,
'DSX' )
1179 dgg =
lsamen( 3, path,
'DGG' )
1180 dgs =
lsamen( 3, path,
'DGS' )
1181 dgx =
lsamen( 3, path,
'DGX' )
1182 dgv =
lsamen( 3, path,
'DGV' )
1183 dxv =
lsamen( 3, path,
'DXV' )
1184 dsb =
lsamen( 3, path,
'DSB' )
1185 dbb =
lsamen( 3, path,
'DBB' )
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 dbl =
lsamen( 3, path,
'DBL' )
1192 dbk =
lsamen( 3, path,
'DBK' )
1193 dgl =
lsamen( 3, path,
'DGL' )
1194 dgk =
lsamen( 3, path,
'DGK' )
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,
'DEC' ) )
THEN
1266 READ( nin, fmt = * )thresh
1274 CALL dchkec( 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.( dgx .OR. dxv ) )
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. dbb .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.( dgx .OR. dxv ) )
THEN
1354 WRITE( nout, fmt = 9983 )
'N: ', ( nval( i ), i = 1, nn )
1356 WRITE( nout, fmt = 9983 )
'N: ', nn
1361 IF( dsb .OR. dbb )
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( dev .OR. des .OR. dvx .OR. dsx )
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 ELSEIF( dgs .OR. dgx .OR. dgv .OR. dxv )
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.dsb .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. dgg )
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. dbb .OR. dgg )
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. dgg )
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 =
dlamch(
'Underflow threshold' )
1694 WRITE( nout, fmt = 9981 )
'underflow', eps
1695 eps =
dlamch(
'Overflow threshold' )
1696 WRITE( nout, fmt = 9981 )
'overflow ', eps
1697 eps =
dlamch(
'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. dgg )
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.( dgx .OR. dxv ) )
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.( dev .OR. des .OR. dvx .OR. dsx .OR. dgv .OR.
1791 $ dgs ) .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,
'DHS' ) .OR.
lsamen( 3, c3,
'NEP' ) )
THEN
1824 ntypes = min( maxtyp, ntypes )
1825 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1828 $
CALL derrhs(
'DHSEQR', 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 dchkhs( 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 )
'DCHKHS', info
1859 ELSE IF(
lsamen( 3, c3,
'DST' ) .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 )
1877 n_threads = omp_get_max_threads()
1879 CALL omp_set_num_threads(one_thread)
1881 CALL derrst(
'DST', nout )
1883 CALL omp_set_num_threads(n_threads)
1886 DO 290 i = 1, nparms
1887 CALL xlaenv( 1, nbval( i ) )
1888 CALL xlaenv( 2, nbmin( i ) )
1889 CALL xlaenv( 3, nxval( i ) )
1891 IF( newsd.EQ.0 )
THEN
1893 iseed( k ) = ioldsd( k )
1896 WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1899 IF(
lsamen( 3, c3,
'SE2' ) )
THEN
1900 CALL dchkst2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1901 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
1902 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
1903 $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
1904 $ d( 1, 10 ), d( 1, 11 ), a( 1, 3 ), nmax,
1905 $ a( 1, 4 ), a( 1, 5 ), d( 1, 12 ), a( 1, 6 ),
1906 $ work, lwork, iwork, liwork, result, info )
1908 CALL dchkst( nn, nval, maxtyp, dotype, iseed, thresh,
1909 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
1910 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
1911 $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
1912 $ d( 1, 10 ), d( 1, 11 ), a( 1, 3 ), nmax,
1913 $ a( 1, 4 ), a( 1, 5 ), d( 1, 12 ), a( 1, 6 ),
1914 $ work, lwork, iwork, liwork, result, info )
1917 $
WRITE( nout, fmt = 9980 )
'DCHKST', info
1920 IF(
lsamen( 3, c3,
'SE2' ) )
THEN
1921 CALL ddrvst2stg( nn, nval, 18, dotype, iseed, thresh,
1922 $ nout, a( 1, 1 ), nmax, d( 1, 3 ), d( 1, 4 ),
1923 $ d( 1, 5 ), d( 1, 6 ), d( 1, 8 ), d( 1, 9 ),
1924 $ d( 1, 10 ), d( 1, 11 ), a( 1, 2 ), nmax,
1925 $ a( 1, 3 ), d( 1, 12 ), a( 1, 4 ), work,
1926 $ lwork, iwork, liwork, result, info )
1928 CALL ddrvst( nn, nval, 18, dotype, iseed, thresh, nout,
1929 $ a( 1, 1 ), nmax, d( 1, 3 ), d( 1, 4 ),
1930 $ d( 1, 5 ), d( 1, 6 ), d( 1, 8 ), d( 1, 9 ),
1931 $ d( 1, 10 ), d( 1, 11 ), a( 1, 2 ), nmax,
1932 $ a( 1, 3 ), d( 1, 12 ), a( 1, 4 ), work,
1933 $ lwork, iwork, liwork, result, info )
1936 $
WRITE( nout, fmt = 9980 )
'DDRVST', info
1940 ELSE IF(
lsamen( 3, c3,
'DSG' ) )
THEN
1951 ntypes = min( maxtyp, ntypes )
1952 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1954 DO 310 i = 1, nparms
1955 CALL xlaenv( 1, nbval( i ) )
1956 CALL xlaenv( 2, nbmin( i ) )
1957 CALL xlaenv( 3, nxval( i ) )
1959 IF( newsd.EQ.0 )
THEN
1961 iseed( k ) = ioldsd( k )
1964 WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1972 CALL ddrvsg2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1973 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
1974 $ d( 1, 3 ), d( 1, 3 ), a( 1, 3 ), nmax,
1975 $ a( 1, 4 ), a( 1, 5 ), a( 1, 6 ),
1976 $ a( 1, 7 ), work, lwork, iwork, liwork,
1979 $
WRITE( nout, fmt = 9980 )
'DDRVSG', info
1983 ELSE IF(
lsamen( 3, c3,
'DBD' ) .OR.
lsamen( 3, c3,
'SVD' ) )
THEN
1995 ntypes = min( maxtyp, ntypes )
1996 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2002 IF( tsterr .AND. tstchk )
2003 $
CALL derrbd(
'DBD', nout )
2004 IF( tsterr .AND. tstdrv )
2005 $
CALL derred(
'DBD', nout )
2007 DO 330 i = 1, nparms
2009 CALL xlaenv( 1, nbval( i ) )
2010 CALL xlaenv( 2, nbmin( i ) )
2011 CALL xlaenv( 3, nxval( i ) )
2012 IF( newsd.EQ.0 )
THEN
2014 iseed( k ) = ioldsd( k )
2017 WRITE( nout, fmt = 9995 )c3, nbval( i ), nbmin( i ),
2020 CALL dchkbd( nn, mval, nval, maxtyp, dotype, nrhs, iseed,
2021 $ thresh, a( 1, 1 ), nmax, d( 1, 1 ),
2022 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 2 ),
2023 $ nmax, a( 1, 3 ), a( 1, 4 ), a( 1, 5 ), nmax,
2024 $ a( 1, 6 ), nmax, a( 1, 7 ), a( 1, 8 ), work,
2025 $ lwork, iwork, nout, info )
2027 $
WRITE( nout, fmt = 9980 )
'DCHKBD', info
2030 $
CALL ddrvbd( nn, mval, nval, maxtyp, dotype, iseed,
2031 $ thresh, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
2032 $ a( 1, 3 ), nmax, a( 1, 4 ), a( 1, 5 ),
2033 $ a( 1, 6 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
2034 $ work, lwork, iwork, nout, info )
2037 ELSE IF(
lsamen( 3, c3,
'DEV' ) )
THEN
2045 ntypes = min( maxtyp, ntypes )
2046 IF( ntypes.LE.0 )
THEN
2047 WRITE( nout, fmt = 9990 )c3
2050 $
CALL derred( c3, nout )
2051 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2052 CALL ddrvev( nn, nval, ntypes, dotype, iseed, thresh, nout,
2053 $ 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, result,
2056 $ work, lwork, iwork, info )
2058 $
WRITE( nout, fmt = 9980 )
'DGEEV', info
2060 WRITE( nout, fmt = 9973 )
2063 ELSE IF(
lsamen( 3, c3,
'DES' ) )
THEN
2071 ntypes = min( maxtyp, ntypes )
2072 IF( ntypes.LE.0 )
THEN
2073 WRITE( nout, fmt = 9990 )c3
2076 $
CALL derred( c3, nout )
2077 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2078 CALL ddrves( nn, nval, ntypes, dotype, iseed, thresh, nout,
2079 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2080 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2081 $ a( 1, 4 ), nmax, result, work, lwork, iwork,
2084 $
WRITE( nout, fmt = 9980 )
'DGEES', info
2086 WRITE( nout, fmt = 9973 )
2089 ELSE IF(
lsamen( 3, c3,
'DVX' ) )
THEN
2097 ntypes = min( maxtyp, ntypes )
2098 IF( ntypes.LT.0 )
THEN
2099 WRITE( nout, fmt = 9990 )c3
2102 $
CALL derred( c3, nout )
2103 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2104 CALL ddrvvx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2105 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), d( 1, 1 ),
2106 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), a( 1, 3 ),
2107 $ nmax, a( 1, 4 ), nmax, a( 1, 5 ), nmax,
2108 $ d( 1, 5 ), d( 1, 6 ), d( 1, 7 ), d( 1, 8 ),
2109 $ d( 1, 9 ), d( 1, 10 ), d( 1, 11 ), d( 1, 12 ),
2110 $ result, work, lwork, iwork, info )
2112 $
WRITE( nout, fmt = 9980 )
'DGEEVX', info
2114 WRITE( nout, fmt = 9973 )
2117 ELSE IF(
lsamen( 3, c3,
'DSX' ) )
THEN
2125 ntypes = min( maxtyp, ntypes )
2126 IF( ntypes.LT.0 )
THEN
2127 WRITE( nout, fmt = 9990 )c3
2130 $
CALL derred( c3, nout )
2131 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2132 CALL ddrvsx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2133 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2134 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2135 $ d( 1, 5 ), d( 1, 6 ), a( 1, 4 ), nmax,
2136 $ a( 1, 5 ), result, work, lwork, iwork, logwrk,
2139 $
WRITE( nout, fmt = 9980 )
'DGEESX', info
2141 WRITE( nout, fmt = 9973 )
2144 ELSE IF(
lsamen( 3, c3,
'DGG' ) )
THEN
2158 ntypes = min( maxtyp, ntypes )
2159 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2161 IF( tstchk .AND. tsterr )
2162 $
CALL derrgg( c3, nout )
2163 DO 350 i = 1, nparms
2164 CALL xlaenv( 1, nbval( i ) )
2165 CALL xlaenv( 2, nbmin( i ) )
2166 CALL xlaenv( 4, nsval( i ) )
2167 CALL xlaenv( 8, mxbval( i ) )
2168 CALL xlaenv( 16, iacc22( i ) )
2169 CALL xlaenv( 5, nbcol( i ) )
2171 IF( newsd.EQ.0 )
THEN
2173 iseed( k ) = ioldsd( k )
2176 WRITE( nout, fmt = 9996 )c3, nbval( i ), nbmin( i ),
2177 $ nsval( i ), mxbval( i ), iacc22( i ), nbcol( i )
2181 CALL dchkgg( nn, nval, maxtyp, dotype, iseed, thresh,
2182 $ tstdif, thrshn, nout, a( 1, 1 ), nmax,
2183 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2184 $ a( 1, 6 ), a( 1, 7 ), a( 1, 8 ), a( 1, 9 ),
2185 $ nmax, a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
2186 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), d( 1, 4 ),
2187 $ d( 1, 5 ), d( 1, 6 ), a( 1, 13 ),
2188 $ a( 1, 14 ), work, lwork, logwrk, result,
2191 $
WRITE( nout, fmt = 9980 )
'DCHKGG', info
2195 ELSE IF(
lsamen( 3, c3,
'DGS' ) )
THEN
2203 ntypes = min( maxtyp, ntypes )
2204 IF( ntypes.LE.0 )
THEN
2205 WRITE( nout, fmt = 9990 )c3
2208 $
CALL derrgg( c3, nout )
2209 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2210 CALL ddrges( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2211 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2212 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2213 $ d( 1, 1 ), d( 1, 2 ), d( 1, 3 ), work, lwork,
2214 $ result, logwrk, info )
2216 $
WRITE( nout, fmt = 9980 )
'DDRGES', info
2221 CALL ddrges3( 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 )
2227 $
WRITE( nout, fmt = 9980 )
'DDRGES3', info
2229 WRITE( nout, fmt = 9973 )
2242 WRITE( nout, fmt = 9990 )c3
2245 $
CALL derrgg( c3, nout )
2246 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2248 CALL ddrgsx( nn, ncmax, thresh, nin, nout, a( 1, 1 ), nmax,
2249 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2250 $ a( 1, 6 ), d( 1, 1 ), d( 1, 2 ), d( 1, 3 ),
2251 $ c( 1, 1 ), ncmax*ncmax, a( 1, 12 ), work,
2252 $ lwork, iwork, liwork, logwrk, info )
2254 $
WRITE( nout, fmt = 9980 )
'DDRGSX', info
2256 WRITE( nout, fmt = 9973 )
2259 ELSE IF(
lsamen( 3, c3,
'DGV' ) )
THEN
2267 ntypes = min( maxtyp, ntypes )
2268 IF( ntypes.LE.0 )
THEN
2269 WRITE( nout, fmt = 9990 )c3
2272 $
CALL derrgg( c3, nout )
2273 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2274 CALL ddrgev( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2275 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2276 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2277 $ a( 1, 9 ), nmax, d( 1, 1 ), d( 1, 2 ),
2278 $ d( 1, 3 ), d( 1, 4 ), d( 1, 5 ), d( 1, 6 ),
2279 $ work, lwork, result, info )
2281 $
WRITE( nout, fmt = 9980 )
'DDRGEV', info
2285 CALL ddrgev3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2286 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2287 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2288 $ a( 1, 9 ), nmax, d( 1, 1 ), d( 1, 2 ),
2289 $ d( 1, 3 ), d( 1, 4 ), d( 1, 5 ), d( 1, 6 ),
2290 $ work, lwork, result, info )
2292 $
WRITE( nout, fmt = 9980 )
'DDRGEV3', info
2294 WRITE( nout, fmt = 9973 )
2307 WRITE( nout, fmt = 9990 )c3
2310 $
CALL derrgg( c3, nout )
2311 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2312 CALL ddrgvx( nn, thresh, nin, nout, a( 1, 1 ), nmax,
2313 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), d( 1, 1 ),
2314 $ d( 1, 2 ), d( 1, 3 ), a( 1, 5 ), a( 1, 6 ),
2315 $ iwork( 1 ), iwork( 2 ), d( 1, 4 ), d( 1, 5 ),
2316 $ d( 1, 6 ), d( 1, 7 ), d( 1, 8 ), d( 1, 9 ),
2317 $ work, lwork, iwork( 3 ), liwork-2, result,
2321 $
WRITE( nout, fmt = 9980 )
'DDRGVX', info
2323 WRITE( nout, fmt = 9973 )
2326 ELSE IF(
lsamen( 3, c3,
'DSB' ) )
THEN
2333 ntypes = min( maxtyp, ntypes )
2334 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2336 $
CALL derrst(
'DSB', nout )
2340 CALL dchksb2stg( nn, nval, nk, kval, maxtyp, dotype, iseed,
2341 $ thresh, nout, a( 1, 1 ), nmax, d( 1, 1 ),
2342 $ d( 1, 2 ), d( 1, 3 ), d( 1, 4 ), d( 1, 5 ),
2343 $ a( 1, 2 ), nmax, work, lwork, result, info )
2345 $
WRITE( nout, fmt = 9980 )
'DCHKSB', info
2347 ELSE IF(
lsamen( 3, c3,
'DBB' ) )
THEN
2354 ntypes = min( maxtyp, ntypes )
2355 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2356 DO 370 i = 1, nparms
2359 IF( newsd.EQ.0 )
THEN
2361 iseed( k ) = ioldsd( k )
2364 WRITE( nout, fmt = 9966 )c3, nrhs
2365 CALL dchkbb( nn, mval, nval, nk, kval, maxtyp, dotype, nrhs,
2366 $ iseed, thresh, nout, a( 1, 1 ), nmax,
2367 $ a( 1, 2 ), 2*nmax, d( 1, 1 ), d( 1, 2 ),
2368 $ a( 1, 4 ), nmax, a( 1, 5 ), nmax, a( 1, 6 ),
2369 $ nmax, a( 1, 7 ), work, lwork, result, info )
2371 $
WRITE( nout, fmt = 9980 )
'DCHKBB', info
2374 ELSE IF(
lsamen( 3, c3,
'GLM' ) )
THEN
2382 $
CALL derrgg(
'GLM', nout )
2383 CALL dckglm( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2384 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2385 $ work, d( 1, 1 ), nin, nout, info )
2387 $
WRITE( nout, fmt = 9980 )
'DCKGLM', info
2389 ELSE IF(
lsamen( 3, c3,
'GQR' ) )
THEN
2397 $
CALL derrgg(
'GQR', nout )
2398 CALL dckgqr( nn, mval, nn, pval, nn, nval, ntypes, iseed,
2399 $ thresh, nmax, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
2400 $ a( 1, 4 ), taua, b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
2401 $ b( 1, 4 ), b( 1, 5 ), taub, work, d( 1, 1 ), nin,
2404 $
WRITE( nout, fmt = 9980 )
'DCKGQR', info
2406 ELSE IF(
lsamen( 3, c3,
'GSV' ) )
THEN
2414 $
CALL derrgg(
'GSV', nout )
2415 CALL dckgsv( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2416 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
2417 $ a( 1, 3 ), b( 1, 3 ), a( 1, 4 ), taua, taub,
2418 $ b( 1, 4 ), iwork, work, d( 1, 1 ), nin, nout,
2421 $
WRITE( nout, fmt = 9980 )
'DCKGSV', info
2423 ELSE IF(
lsamen( 3, c3,
'CSD' ) )
THEN
2431 $
CALL derrgg(
'CSD', nout )
2432 CALL dckcsd( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2433 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), a( 1, 4 ),
2434 $ a( 1, 5 ), a( 1, 6 ), a( 1, 7 ), iwork, work,
2435 $ d( 1, 1 ), nin, nout, info )
2437 $
WRITE( nout, fmt = 9980 )
'DCKCSD', info
2439 ELSE IF(
lsamen( 3, c3,
'LSE' ) )
THEN
2447 $
CALL derrgg(
'LSE', nout )
2448 CALL dcklse( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2449 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2450 $ work, d( 1, 1 ), nin, nout, info )
2452 $
WRITE( nout, fmt = 9980 )
'DCKLSE', info
2455 WRITE( nout, fmt = * )
2456 WRITE( nout, fmt = * )
2457 WRITE( nout, fmt = 9992 )c3
2459 IF( .NOT.( dgx .OR. dxv ) )
2462 WRITE( nout, fmt = 9994 )
2464 WRITE( nout, fmt = 9993 )s2 - s1
2466 DEALLOCATE (a, stat = allocatestatus)
2467 DEALLOCATE (b, stat = allocatestatus)
2468 DEALLOCATE (c, stat = allocatestatus)
2469 DEALLOCATE (work, stat = allocatestatus)
2471 9999
FORMAT( /
' Execution not attempted due to input errors' )
2472 9997
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4 )
2473 9996
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NS =', i4,
2474 $
', MAXB =', i4,
', IACC22 =', i4,
', NBCOL =', i4 )
2475 9995
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2477 9994
FORMAT( / /
' End of tests' )
2478 9993
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
2479 9992
FORMAT( 1x, a3,
': Unrecognized path name' )
2480 9991
FORMAT( / /
' *** Invalid integer value in column ', i2,
2481 $
' of input',
' line:', / a79 )
2482 9990
FORMAT( / / 1x, a3,
' routines were not tested' )
2483 9989
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be >=',
2485 9988
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be <=',
2487 9987
FORMAT(
' Tests of the Nonsymmetric Eigenvalue Problem routines' )
2488 9986
FORMAT(
' Tests of the Symmetric Eigenvalue Problem routines' )
2489 9985
FORMAT(
' Tests of the Singular Value Decomposition routines' )
2490 9984
FORMAT( /
' The following parameter values will be used:' )
2491 9983
FORMAT( 4x, a, 10i6, / 10x, 10i6 )
2492 9982
FORMAT( /
' Routines pass computational tests if test ratio is ',
2493 $
'less than', f8.2, / )
2494 9981
FORMAT(
' Relative machine ', a,
' is taken to be', d16.6 )
2495 9980
FORMAT(
' *** Error code from ', a,
' = ', i4 )
2496 9979
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2497 $ /
' DGEEV (eigenvalues and eigevectors)' )
2498 9978
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2499 $ /
' DGEES (Schur form)' )
2500 9977
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2501 $
' Driver', /
' DGEEVX (eigenvalues, eigenvectors and',
2502 $
' condition numbers)' )
2503 9976
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2504 $
' Driver', /
' DGEESX (Schur form and condition',
2506 9975
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2507 $
'Problem routines' )
2508 9974
FORMAT(
' Tests of DSBTRD', /
' (reduction of a symmetric band ',
2509 $
'matrix to tridiagonal form)' )
2510 9973
FORMAT( / 1x, 71(
'-' ) )
2511 9972
FORMAT( /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1 )
2512 9971
FORMAT( /
' Tests of the Generalized Linear Regression Model ',
2514 9970
FORMAT( /
' Tests of the Generalized QR and RQ routines' )
2515 9969
FORMAT( /
' Tests of the Generalized Singular Value',
2516 $
' Decomposition routines' )
2517 9968
FORMAT( /
' Tests of the Linear Least Squares routines' )
2518 9967
FORMAT(
' Tests of DGBBRD', /
' (reduction of a general band ',
2519 $
'matrix to real bidiagonal form)' )
2520 9966
FORMAT( / / 1x, a3,
': NRHS =', i4 )
2521 9965
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2522 $
'Problem Expert Driver DGGESX' )
2523 9964
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2524 $
'Problem Driver DGGES' )
2525 9963
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2526 $
'Problem Driver DGGEV' )
2527 9962
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2528 $
'Problem Expert Driver DGGEVX' )
2529 9961
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2531 $
', INWIN =', i4,
', INIBL =', i4,
', ISHFTS =', i4,
2533 9960
FORMAT( /
' Tests of the CS Decomposition routines' )
subroutine alareq(path, nmats, dotype, ntypes, nin, nout)
ALAREQ
subroutine xlaenv(ispec, nvalue)
XLAENV
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 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 dchkbk(nin, nout)
DCHKBK
subroutine dchkbl(nin, nout)
DCHKBL
subroutine dchkec(thresh, tsterr, nin, nout)
DCHKEC
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 dchkgk(nin, nout)
DCHKGK
subroutine dchkgl(nin, nout)
DCHKGL
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 dchksb2stg(nsizes, nn, nwdths, kk, ntypes, dotype, iseed, thresh, nounit, a, lda, sd, se, d1, d2, d3, u, ldu, work, lwork, result, info)
DCHKSB2STG
subroutine dchksb(nsizes, nn, nwdths, kk, ntypes, dotype, iseed, thresh, nounit, a, lda, sd, se, u, ldu, work, lwork, result, info)
DCHKSB
subroutine dchkst2stg(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)
DCHKST2STG
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 dckcsd(nm, mval, pval, qval, nmats, iseed, thresh, mmax, x, xf, u1, u2, v1t, v2t, theta, iwork, work, rwork, nin, nout, info)
DCKCSD
subroutine dckglm(nn, mval, pval, nval, nmats, iseed, thresh, nmax, a, af, b, bf, x, work, rwork, nin, nout, info)
DCKGLM
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 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 dcklse(nn, mval, pval, nval, nmats, iseed, thresh, nmax, a, af, b, bf, x, work, rwork, nin, nout, info)
DCKLSE
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 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 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 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 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 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 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 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 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 ddrvsg2stg(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)
DDRVSG2STG
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 ddrvst2stg(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)
DDRVST2STG
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
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 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 derrbd(path, nunit)
DERRBD
subroutine derred(path, nunit)
DERRED
subroutine derrgg(path, nunit)
DERRGG
subroutine derrhs(path, nunit)
DERRHS
subroutine derrst(path, nunit)
DERRST
subroutine ilaver(vers_major, vers_minor, vers_patch)
ILAVER returns the LAPACK version.
double precision function dlamch(cmach)
DLAMCH
logical function lsamen(n, ca, cb)
LSAMEN
double precision function dsecnd()
DSECND Using ETIME
logical function lse(ri, rj, lr)