1047 parameter( nmax = 132 )
1049 parameter( ncmax = 20 )
1051 parameter( need = 14 )
1053 parameter( lwork = nmax*( 5*nmax+20 ) )
1055 parameter( liwork = nmax*( nmax+20 ) )
1057 parameter( maxin = 20 )
1059 parameter( maxt = 30 )
1061 parameter( nin = 5, nout = 6 )
1064 LOGICAL zbk, zbl, zes, zev, zgk, zgl, zgs, zgv, zgx,
1065 $ zsx, zvx, zxv, csd, fatal, glm, gqr, gsv,
lse,
1066 $ nep, sep, svd, tstchk, tstdif, tstdrv, tsterr,
1069 CHARACTER*3 c3, path
1073 INTEGER i, i1, ic, info, itmp, k, lenp, maxtyp, newsd,
1074 $ nk, nn, nparms, nrhs, ntypes,
1075 $ vers_major, vers_minor, vers_patch
1076 INTEGER*4 n_threads, one_thread
1077 DOUBLE PRECISION eps, s1, s2, thresh, thrshn
1080 LOGICAL dotype( maxt ), logwrk( nmax )
1081 INTEGER ioldsd( 4 ), iseed( 4 ), iwork( liwork ),
1082 $ kval( maxin ), mval( maxin ), mxbval( maxin ),
1083 $ nbcol( maxin ), nbmin( maxin ), nbval( maxin ),
1084 $ nsval( maxin ), nval( maxin ), nxval( maxin ),
1086 INTEGER inmin( maxin ), inwin( maxin ), inibl( maxin ),
1087 $ ishfts( maxin ), iacc22( maxin )
1088 DOUBLE PRECISION alpha( nmax ), beta( nmax ), dr( nmax, 12 ),
1090 COMPLEX*16 dc( nmax, 6 ), taua( nmax ), taub( nmax ),
1094 INTEGER allocatestatus
1095 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: rwork, s
1096 COMPLEX*16,
DIMENSION(:),
ALLOCATABLE :: work
1097 COMPLEX*16,
DIMENSION(:,:),
ALLOCATABLE :: a, b, c
1120 INTEGER infot, maxb, nproc, nshift, nunit, seldim,
1124 LOGICAL selval( 20 )
1125 INTEGER iparms( 100 )
1126 DOUBLE PRECISION selwi( 20 ), selwr( 20 )
1129 COMMON / cenvir / nproc, nshift, maxb
1130 COMMON / infoc / infot, nunit, ok, lerr
1131 COMMON / srnamc / srnamt
1132 COMMON / sslct / selopt, seldim, selval, selwr, selwi
1133 COMMON / claenv / iparms
1136 DATA intstr /
'0123456789' /
1137 DATA ioldsd / 0, 0, 0, 1 /
1141 ALLOCATE ( s(nmax*nmax), stat = allocatestatus )
1142 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
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 ( rwork(lwork), stat = allocatestatus )
1150 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1151 ALLOCATE ( work(lwork), stat = allocatestatus )
1152 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1170 READ( nin, fmt =
'(A80)',
END = 380 )line
1172 nep =
lsamen( 3, path,
'NEP' ) .OR.
lsamen( 3, path,
'ZHS' )
1173 sep =
lsamen( 3, path,
'SEP' ) .OR.
lsamen( 3, path,
'ZST' ) .OR.
1174 $
lsamen( 3, path,
'ZSG' ) .OR.
lsamen( 3, path,
'SE2' )
1175 svd =
lsamen( 3, path,
'SVD' ) .OR.
lsamen( 3, path,
'ZBD' )
1176 zev =
lsamen( 3, path,
'ZEV' )
1177 zes =
lsamen( 3, path,
'ZES' )
1178 zvx =
lsamen( 3, path,
'ZVX' )
1179 zsx =
lsamen( 3, path,
'ZSX' )
1180 zgg =
lsamen( 3, path,
'ZGG' )
1181 zgs =
lsamen( 3, path,
'ZGS' )
1182 zgx =
lsamen( 3, path,
'ZGX' )
1183 zgv =
lsamen( 3, path,
'ZGV' )
1184 zxv =
lsamen( 3, path,
'ZXV' )
1185 zhb =
lsamen( 3, path,
'ZHB' )
1186 zbb =
lsamen( 3, path,
'ZBB' )
1187 glm =
lsamen( 3, path,
'GLM' )
1188 gqr =
lsamen( 3, path,
'GQR' ) .OR.
lsamen( 3, path,
'GRQ' )
1189 gsv =
lsamen( 3, path,
'GSV' )
1190 csd =
lsamen( 3, path,
'CSD' )
1192 zbl =
lsamen( 3, path,
'ZBL' )
1193 zbk =
lsamen( 3, path,
'ZBK' )
1194 zgl =
lsamen( 3, path,
'ZGL' )
1195 zgk =
lsamen( 3, path,
'ZGK' )
1199 IF( path.EQ.
' ' )
THEN
1202 WRITE( nout, fmt = 9987 )
1204 WRITE( nout, fmt = 9986 )
1206 WRITE( nout, fmt = 9985 )
1208 WRITE( nout, fmt = 9979 )
1210 WRITE( nout, fmt = 9978 )
1212 WRITE( nout, fmt = 9977 )
1214 WRITE( nout, fmt = 9976 )
1216 WRITE( nout, fmt = 9975 )
1218 WRITE( nout, fmt = 9964 )
1220 WRITE( nout, fmt = 9965 )
1222 WRITE( nout, fmt = 9963 )
1224 WRITE( nout, fmt = 9962 )
1226 WRITE( nout, fmt = 9974 )
1228 WRITE( nout, fmt = 9967 )
1230 WRITE( nout, fmt = 9971 )
1232 WRITE( nout, fmt = 9970 )
1234 WRITE( nout, fmt = 9969 )
1236 WRITE( nout, fmt = 9960 )
1238 WRITE( nout, fmt = 9968 )
1263 ELSE IF(
lsamen( 3, path,
'ZEC' ) )
THEN
1267 READ( nin, fmt = * )thresh
1271 CALL zchkec( thresh, tsterr, nin, nout )
1274 WRITE( nout, fmt = 9992 )path
1277 CALL ilaver( vers_major, vers_minor, vers_patch )
1278 WRITE( nout, fmt = 9972 ) vers_major, vers_minor, vers_patch
1279 WRITE( nout, fmt = 9984 )
1283 READ( nin, fmt = * )nn
1285 WRITE( nout, fmt = 9989 )
' NN ', nn, 1
1288 ELSE IF( nn.GT.maxin )
THEN
1289 WRITE( nout, fmt = 9988 )
' NN ', nn, maxin
1296 IF( .NOT.( zgx .OR. zxv ) )
THEN
1297 READ( nin, fmt = * )( mval( i ), i = 1, nn )
1304 IF( mval( i ).LT.0 )
THEN
1305 WRITE( nout, fmt = 9989 )vname, mval( i ), 0
1307 ELSE IF( mval( i ).GT.nmax )
THEN
1308 WRITE( nout, fmt = 9988 )vname, mval( i ), nmax
1312 WRITE( nout, fmt = 9983 )
'M: ', ( mval( i ), i = 1, nn )
1317 IF( glm .OR. gqr .OR. gsv .OR. csd .OR.
lse )
THEN
1318 READ( nin, fmt = * )( pval( i ), i = 1, nn )
1320 IF( pval( i ).LT.0 )
THEN
1321 WRITE( nout, fmt = 9989 )
' P ', pval( i ), 0
1323 ELSE IF( pval( i ).GT.nmax )
THEN
1324 WRITE( nout, fmt = 9988 )
' P ', pval( i ), nmax
1328 WRITE( nout, fmt = 9983 )
'P: ', ( pval( i ), i = 1, nn )
1333 IF( svd .OR. zbb .OR. glm .OR. gqr .OR. gsv .OR. csd .OR.
1335 READ( nin, fmt = * )( nval( i ), i = 1, nn )
1337 IF( nval( i ).LT.0 )
THEN
1338 WRITE( nout, fmt = 9989 )
' N ', nval( i ), 0
1340 ELSE IF( nval( i ).GT.nmax )
THEN
1341 WRITE( nout, fmt = 9988 )
' N ', nval( i ), nmax
1347 nval( i ) = mval( i )
1350 IF( .NOT.( zgx .OR. zxv ) )
THEN
1351 WRITE( nout, fmt = 9983 )
'N: ', ( nval( i ), i = 1, nn )
1353 WRITE( nout, fmt = 9983 )
'N: ', nn
1358 IF( zhb .OR. zbb )
THEN
1359 READ( nin, fmt = * )nk
1360 READ( nin, fmt = * )( kval( i ), i = 1, nk )
1362 IF( kval( i ).LT.0 )
THEN
1363 WRITE( nout, fmt = 9989 )
' K ', kval( i ), 0
1365 ELSE IF( kval( i ).GT.nmax )
THEN
1366 WRITE( nout, fmt = 9988 )
' K ', kval( i ), nmax
1370 WRITE( nout, fmt = 9983 )
'K: ', ( kval( i ), i = 1, nk )
1373 IF( zev .OR. zes .OR. zvx .OR. zsx )
THEN
1378 READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1379 $ inmin( 1 ), inwin( 1 ), inibl(1), ishfts(1), iacc22(1)
1380 IF( nbval( 1 ).LT.1 )
THEN
1381 WRITE( nout, fmt = 9989 )
' NB ', nbval( 1 ), 1
1383 ELSE IF( nbmin( 1 ).LT.1 )
THEN
1384 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( 1 ), 1
1386 ELSE IF( nxval( 1 ).LT.1 )
THEN
1387 WRITE( nout, fmt = 9989 )
' NX ', nxval( 1 ), 1
1389 ELSE IF( inmin( 1 ).LT.1 )
THEN
1390 WRITE( nout, fmt = 9989 )
' INMIN ', inmin( 1 ), 1
1392 ELSE IF( inwin( 1 ).LT.1 )
THEN
1393 WRITE( nout, fmt = 9989 )
' INWIN ', inwin( 1 ), 1
1395 ELSE IF( inibl( 1 ).LT.1 )
THEN
1396 WRITE( nout, fmt = 9989 )
' INIBL ', inibl( 1 ), 1
1398 ELSE IF( ishfts( 1 ).LT.1 )
THEN
1399 WRITE( nout, fmt = 9989 )
' ISHFTS ', ishfts( 1 ), 1
1401 ELSE IF( iacc22( 1 ).LT.0 )
THEN
1402 WRITE( nout, fmt = 9989 )
' IACC22 ', iacc22( 1 ), 0
1405 CALL xlaenv( 1, nbval( 1 ) )
1406 CALL xlaenv( 2, nbmin( 1 ) )
1407 CALL xlaenv( 3, nxval( 1 ) )
1408 CALL xlaenv(12, max( 11, inmin( 1 ) ) )
1409 CALL xlaenv(13, inwin( 1 ) )
1410 CALL xlaenv(14, inibl( 1 ) )
1411 CALL xlaenv(15, ishfts( 1 ) )
1412 CALL xlaenv(16, iacc22( 1 ) )
1413 WRITE( nout, fmt = 9983 )
'NB: ', nbval( 1 )
1414 WRITE( nout, fmt = 9983 )
'NBMIN:', nbmin( 1 )
1415 WRITE( nout, fmt = 9983 )
'NX: ', nxval( 1 )
1416 WRITE( nout, fmt = 9983 )
'INMIN: ', inmin( 1 )
1417 WRITE( nout, fmt = 9983 )
'INWIN: ', inwin( 1 )
1418 WRITE( nout, fmt = 9983 )
'INIBL: ', inibl( 1 )
1419 WRITE( nout, fmt = 9983 )
'ISHFTS: ', ishfts( 1 )
1420 WRITE( nout, fmt = 9983 )
'IACC22: ', iacc22( 1 )
1422 ELSE IF( zgs .OR. zgx .OR. zgv .OR. zxv )
THEN
1427 READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1428 $ nsval( 1 ), mxbval( 1 )
1429 IF( nbval( 1 ).LT.1 )
THEN
1430 WRITE( nout, fmt = 9989 )
' NB ', nbval( 1 ), 1
1432 ELSE IF( nbmin( 1 ).LT.1 )
THEN
1433 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( 1 ), 1
1435 ELSE IF( nxval( 1 ).LT.1 )
THEN
1436 WRITE( nout, fmt = 9989 )
' NX ', nxval( 1 ), 1
1438 ELSE IF( nsval( 1 ).LT.2 )
THEN
1439 WRITE( nout, fmt = 9989 )
' NS ', nsval( 1 ), 2
1441 ELSE IF( mxbval( 1 ).LT.1 )
THEN
1442 WRITE( nout, fmt = 9989 )
' MAXB ', mxbval( 1 ), 1
1445 CALL xlaenv( 1, nbval( 1 ) )
1446 CALL xlaenv( 2, nbmin( 1 ) )
1447 CALL xlaenv( 3, nxval( 1 ) )
1448 CALL xlaenv( 4, nsval( 1 ) )
1449 CALL xlaenv( 8, mxbval( 1 ) )
1450 WRITE( nout, fmt = 9983 )
'NB: ', nbval( 1 )
1451 WRITE( nout, fmt = 9983 )
'NBMIN:', nbmin( 1 )
1452 WRITE( nout, fmt = 9983 )
'NX: ', nxval( 1 )
1453 WRITE( nout, fmt = 9983 )
'NS: ', nsval( 1 )
1454 WRITE( nout, fmt = 9983 )
'MAXB: ', mxbval( 1 )
1455 ELSE IF( .NOT.zhb .AND. .NOT.glm .AND. .NOT.gqr .AND. .NOT.
1456 $ gsv .AND. .NOT.csd .AND. .NOT.
lse )
THEN
1461 READ( nin, fmt = * )nparms
1462 IF( nparms.LT.1 )
THEN
1463 WRITE( nout, fmt = 9989 )
'NPARMS', nparms, 1
1466 ELSE IF( nparms.GT.maxin )
THEN
1467 WRITE( nout, fmt = 9988 )
'NPARMS', nparms, maxin
1475 READ( nin, fmt = * )( nbval( i ), i = 1, nparms )
1477 IF( nbval( i ).LT.0 )
THEN
1478 WRITE( nout, fmt = 9989 )
' NB ', nbval( i ), 0
1480 ELSE IF( nbval( i ).GT.nmax )
THEN
1481 WRITE( nout, fmt = 9988 )
' NB ', nbval( i ), nmax
1485 WRITE( nout, fmt = 9983 )
'NB: ',
1486 $ ( nbval( i ), i = 1, nparms )
1491 IF( nep .OR. sep .OR. svd .OR. zgg )
THEN
1492 READ( nin, fmt = * )( nbmin( i ), i = 1, nparms )
1494 IF( nbmin( i ).LT.0 )
THEN
1495 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( i ), 0
1497 ELSE IF( nbmin( i ).GT.nmax )
THEN
1498 WRITE( nout, fmt = 9988 )
'NBMIN ', nbmin( i ), nmax
1502 WRITE( nout, fmt = 9983 )
'NBMIN:',
1503 $ ( nbmin( i ), i = 1, nparms )
1512 IF( nep .OR. sep .OR. svd )
THEN
1513 READ( nin, fmt = * )( nxval( i ), i = 1, nparms )
1514 DO 100 i = 1, nparms
1515 IF( nxval( i ).LT.0 )
THEN
1516 WRITE( nout, fmt = 9989 )
' NX ', nxval( i ), 0
1518 ELSE IF( nxval( i ).GT.nmax )
THEN
1519 WRITE( nout, fmt = 9988 )
' NX ', nxval( i ), nmax
1523 WRITE( nout, fmt = 9983 )
'NX: ',
1524 $ ( nxval( i ), i = 1, nparms )
1526 DO 110 i = 1, nparms
1534 IF( svd .OR. zbb .OR. zgg )
THEN
1535 READ( nin, fmt = * )( nsval( i ), i = 1, nparms )
1536 DO 120 i = 1, nparms
1537 IF( nsval( i ).LT.0 )
THEN
1538 WRITE( nout, fmt = 9989 )
' NS ', nsval( i ), 0
1540 ELSE IF( nsval( i ).GT.nmax )
THEN
1541 WRITE( nout, fmt = 9988 )
' NS ', nsval( i ), nmax
1545 WRITE( nout, fmt = 9983 )
'NS: ',
1546 $ ( nsval( i ), i = 1, nparms )
1548 DO 130 i = 1, nparms
1556 READ( nin, fmt = * )( mxbval( i ), i = 1, nparms )
1557 DO 140 i = 1, nparms
1558 IF( mxbval( i ).LT.0 )
THEN
1559 WRITE( nout, fmt = 9989 )
' MAXB ', mxbval( i ), 0
1561 ELSE IF( mxbval( i ).GT.nmax )
THEN
1562 WRITE( nout, fmt = 9988 )
' MAXB ', mxbval( i ), nmax
1566 WRITE( nout, fmt = 9983 )
'MAXB: ',
1567 $ ( mxbval( i ), i = 1, nparms )
1569 DO 150 i = 1, nparms
1577 READ( nin, fmt = * )( inmin( i ), i = 1, nparms )
1578 DO 540 i = 1, nparms
1579 IF( inmin( i ).LT.0 )
THEN
1580 WRITE( nout, fmt = 9989 )
' INMIN ', inmin( i ), 0
1584 WRITE( nout, fmt = 9983 )
'INMIN: ',
1585 $ ( inmin( i ), i = 1, nparms )
1587 DO 550 i = 1, nparms
1595 READ( nin, fmt = * )( inwin( i ), i = 1, nparms )
1596 DO 560 i = 1, nparms
1597 IF( inwin( i ).LT.0 )
THEN
1598 WRITE( nout, fmt = 9989 )
' INWIN ', inwin( i ), 0
1602 WRITE( nout, fmt = 9983 )
'INWIN: ',
1603 $ ( inwin( i ), i = 1, nparms )
1605 DO 570 i = 1, nparms
1613 READ( nin, fmt = * )( inibl( i ), i = 1, nparms )
1614 DO 580 i = 1, nparms
1615 IF( inibl( i ).LT.0 )
THEN
1616 WRITE( nout, fmt = 9989 )
' INIBL ', inibl( i ), 0
1620 WRITE( nout, fmt = 9983 )
'INIBL: ',
1621 $ ( inibl( i ), i = 1, nparms )
1623 DO 590 i = 1, nparms
1631 READ( nin, fmt = * )( ishfts( i ), i = 1, nparms )
1632 DO 600 i = 1, nparms
1633 IF( ishfts( i ).LT.0 )
THEN
1634 WRITE( nout, fmt = 9989 )
' ISHFTS ', ishfts( i ), 0
1638 WRITE( nout, fmt = 9983 )
'ISHFTS: ',
1639 $ ( ishfts( i ), i = 1, nparms )
1641 DO 610 i = 1, nparms
1648 IF( nep .OR. zgg )
THEN
1649 READ( nin, fmt = * )( iacc22( i ), i = 1, nparms )
1650 DO 620 i = 1, nparms
1651 IF( iacc22( i ).LT.0 )
THEN
1652 WRITE( nout, fmt = 9989 )
' IACC22 ', iacc22( i ), 0
1656 WRITE( nout, fmt = 9983 )
'IACC22: ',
1657 $ ( iacc22( i ), i = 1, nparms )
1659 DO 630 i = 1, nparms
1667 READ( nin, fmt = * )( nbcol( i ), i = 1, nparms )
1668 DO 160 i = 1, nparms
1669 IF( nbcol( i ).LT.0 )
THEN
1670 WRITE( nout, fmt = 9989 )
'NBCOL ', nbcol( i ), 0
1672 ELSE IF( nbcol( i ).GT.nmax )
THEN
1673 WRITE( nout, fmt = 9988 )
'NBCOL ', nbcol( i ), nmax
1677 WRITE( nout, fmt = 9983 )
'NBCOL:',
1678 $ ( nbcol( i ), i = 1, nparms )
1680 DO 170 i = 1, nparms
1688 WRITE( nout, fmt = * )
1689 eps =
dlamch(
'Underflow threshold' )
1690 WRITE( nout, fmt = 9981 )
'underflow', eps
1691 eps =
dlamch(
'Overflow threshold' )
1692 WRITE( nout, fmt = 9981 )
'overflow ', eps
1693 eps =
dlamch(
'Epsilon' )
1694 WRITE( nout, fmt = 9981 )
'precision', eps
1698 READ( nin, fmt = * )thresh
1699 WRITE( nout, fmt = 9982 )thresh
1700 IF( sep .OR. svd .OR. zgg )
THEN
1704 READ( nin, fmt = * )tstchk
1708 READ( nin, fmt = * )tstdrv
1713 READ( nin, fmt = * )tsterr
1717 READ( nin, fmt = * )newsd
1722 $
READ( nin, fmt = * )( ioldsd( i ), i = 1, 4 )
1725 iseed( i ) = ioldsd( i )
1729 WRITE( nout, fmt = 9999 )
1740 IF( .NOT.( zgx .OR. zxv ) )
THEN
1743 READ( nin, fmt =
'(A80)',
END = 380 )line
1751 IF( i.GT.lenp )
THEN
1759 IF( line( i: i ).NE.
' ' .AND. line( i: i ).NE.
',' )
THEN
1766 IF( c1.EQ.intstr( k: k ) )
THEN
1771 WRITE( nout, fmt = 9991 )i, line
1776 ELSE IF( i1.GT.0 )
THEN
1786 IF( .NOT.( zev .OR. zes .OR. zvx .OR. zsx .OR. zgv .OR.
1787 $ zgs ) .AND. ntypes.LE.0 )
THEN
1788 WRITE( nout, fmt = 9990 )c3
1801 IF( newsd.EQ.0 )
THEN
1803 iseed( k ) = ioldsd( k )
1807 IF(
lsamen( 3, c3,
'ZHS' ) .OR.
lsamen( 3, c3,
'NEP' ) )
THEN
1820 ntypes = min( maxtyp, ntypes )
1821 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1824 $
CALL zerrhs(
'ZHSEQR', nout )
1825 DO 270 i = 1, nparms
1826 CALL xlaenv( 1, nbval( i ) )
1827 CALL xlaenv( 2, nbmin( i ) )
1828 CALL xlaenv( 3, nxval( i ) )
1829 CALL xlaenv(12, max( 11, inmin( i ) ) )
1830 CALL xlaenv(13, inwin( i ) )
1831 CALL xlaenv(14, inibl( i ) )
1832 CALL xlaenv(15, ishfts( i ) )
1833 CALL xlaenv(16, iacc22( i ) )
1835 IF( newsd.EQ.0 )
THEN
1837 iseed( k ) = ioldsd( k )
1840 WRITE( nout, fmt = 9961 )c3, nbval( i ), nbmin( i ),
1841 $ nxval( i ), max( 11, inmin(i)),
1842 $ inwin( i ), inibl( i ), ishfts( i ), iacc22( i )
1843 CALL zchkhs( nn, nval, maxtyp, dotype, iseed, thresh, nout,
1844 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
1845 $ a( 1, 4 ), a( 1, 5 ), nmax, a( 1, 6 ),
1846 $ a( 1, 7 ), dc( 1, 1 ), dc( 1, 2 ), a( 1, 8 ),
1847 $ a( 1, 9 ), a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
1848 $ dc( 1, 3 ), work, lwork, rwork, iwork, logwrk,
1851 $
WRITE( nout, fmt = 9980 )
'ZCHKHS', info
1854 ELSE IF(
lsamen( 3, c3,
'ZST' ) .OR.
lsamen( 3, c3,
'SEP' )
1855 $ .OR.
lsamen( 3, c3,
'SE2' ) )
THEN
1866 ntypes = min( maxtyp, ntypes )
1867 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1872 n_threads = omp_get_max_threads()
1874 CALL omp_set_num_threads(one_thread)
1876 CALL zerrst(
'ZST', nout )
1878 CALL omp_set_num_threads(n_threads)
1881 DO 290 i = 1, nparms
1882 CALL xlaenv( 1, nbval( i ) )
1883 CALL xlaenv( 2, nbmin( i ) )
1884 CALL xlaenv( 3, nxval( i ) )
1886 IF( newsd.EQ.0 )
THEN
1888 iseed( k ) = ioldsd( k )
1891 WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1894 IF(
lsamen( 3, c3,
'SE2' ) )
THEN
1895 CALL zchkst2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1896 $ nout, a( 1, 1 ), nmax, a( 1, 2 ),
1897 $ dr( 1, 1 ), dr( 1, 2 ), dr( 1, 3 ),
1898 $ dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ),
1899 $ dr( 1, 7 ), dr( 1, 8 ), dr( 1, 9 ),
1900 $ dr( 1, 10 ), dr( 1, 11 ), a( 1, 3 ), nmax,
1901 $ a( 1, 4 ), a( 1, 5 ), dc( 1, 1 ), a( 1, 6 ),
1902 $ work, lwork, rwork, lwork, iwork, liwork,
1905 CALL zchkst( nn, nval, maxtyp, dotype, iseed, thresh,
1906 $ nout, a( 1, 1 ), nmax, a( 1, 2 ),
1907 $ dr( 1, 1 ), dr( 1, 2 ), dr( 1, 3 ),
1908 $ dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ),
1909 $ dr( 1, 7 ), dr( 1, 8 ), dr( 1, 9 ),
1910 $ dr( 1, 10 ), dr( 1, 11 ), a( 1, 3 ), nmax,
1911 $ a( 1, 4 ), a( 1, 5 ), dc( 1, 1 ), a( 1, 6 ),
1912 $ work, lwork, rwork, lwork, iwork, liwork,
1916 $
WRITE( nout, fmt = 9980 )
'ZCHKST', info
1919 IF(
lsamen( 3, c3,
'SE2' ) )
THEN
1920 CALL zdrvst2stg( nn, nval, 18, dotype, iseed, thresh,
1921 $ nout, a( 1, 1 ), nmax, dr( 1, 3 ), dr( 1, 4 ),
1922 $ dr( 1, 5 ), dr( 1, 8 ), dr( 1, 9 ),
1923 $ dr( 1, 10 ), a( 1, 2 ), nmax, a( 1, 3 ),
1924 $ dc( 1, 1 ), a( 1, 4 ), work, lwork, rwork,
1925 $ lwork, iwork, liwork, result, info )
1927 CALL zdrvst( nn, nval, 18, dotype, iseed, thresh, nout,
1928 $ a( 1, 1 ), nmax, dr( 1, 3 ), dr( 1, 4 ),
1929 $ dr( 1, 5 ), dr( 1, 8 ), dr( 1, 9 ),
1930 $ dr( 1, 10 ), a( 1, 2 ), nmax, a( 1, 3 ),
1931 $ dc( 1, 1 ), a( 1, 4 ), work, lwork, rwork,
1932 $ lwork, iwork, liwork, result, info )
1935 $
WRITE( nout, fmt = 9980 )
'ZDRVST', info
1939 ELSE IF(
lsamen( 3, c3,
'ZSG' ) )
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 ),
1972 CALL zdrvsg2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1973 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
1974 $ dr( 1, 3 ), dr( 1, 4 ), a( 1, 3 ), nmax,
1975 $ a( 1, 4 ), a( 1, 5 ), a( 1, 6 ),
1976 $ a( 1, 7 ), work, lwork, rwork, lwork,
1977 $ iwork, liwork, result, info )
1979 $
WRITE( nout, fmt = 9980 )
'ZDRVSG', info
1983 ELSE IF(
lsamen( 3, c3,
'ZBD' ) .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 zerrbd(
'ZBD', nout )
2004 IF( tsterr .AND. tstdrv )
2005 $
CALL zerred(
'ZBD', 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 zchkbd( nn, mval, nval, maxtyp, dotype, nrhs, iseed,
2021 $ thresh, a( 1, 1 ), nmax, dr( 1, 1 ),
2022 $ dr( 1, 2 ), dr( 1, 3 ), dr( 1, 4 ),
2023 $ a( 1, 2 ), nmax, a( 1, 3 ), a( 1, 4 ),
2024 $ a( 1, 5 ), nmax, a( 1, 6 ), nmax, a( 1, 7 ),
2025 $ a( 1, 8 ), work, lwork, rwork, nout, info )
2027 $
WRITE( nout, fmt = 9980 )
'ZCHKBD', info
2030 $
CALL zdrvbd( 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 ), dr( 1, 1 ), dr( 1, 2 ),
2034 $ dr( 1, 3 ), work, lwork, rwork, iwork, nout,
2038 ELSE IF(
lsamen( 3, c3,
'ZEV' ) )
THEN
2046 ntypes = min( maxtyp, ntypes )
2047 IF( ntypes.LE.0 )
THEN
2048 WRITE( nout, fmt = 9990 )c3
2051 $
CALL zerred( c3, nout )
2052 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2053 CALL zdrvev( nn, nval, ntypes, dotype, iseed, thresh, nout,
2054 $ a( 1, 1 ), nmax, a( 1, 2 ), dc( 1, 1 ),
2055 $ dc( 1, 2 ), a( 1, 3 ), nmax, a( 1, 4 ), nmax,
2056 $ a( 1, 5 ), nmax, result, work, lwork, rwork,
2059 $
WRITE( nout, fmt = 9980 )
'ZGEEV', info
2061 WRITE( nout, fmt = 9973 )
2064 ELSE IF(
lsamen( 3, c3,
'ZES' ) )
THEN
2072 ntypes = min( maxtyp, ntypes )
2073 IF( ntypes.LE.0 )
THEN
2074 WRITE( nout, fmt = 9990 )c3
2077 $
CALL zerred( c3, nout )
2078 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2079 CALL zdrves( nn, nval, ntypes, dotype, iseed, thresh, nout,
2080 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2081 $ dc( 1, 1 ), dc( 1, 2 ), a( 1, 4 ), nmax,
2082 $ result, work, lwork, rwork, iwork, logwrk,
2085 $
WRITE( nout, fmt = 9980 )
'ZGEES', info
2087 WRITE( nout, fmt = 9973 )
2090 ELSE IF(
lsamen( 3, c3,
'ZVX' ) )
THEN
2098 ntypes = min( maxtyp, ntypes )
2099 IF( ntypes.LT.0 )
THEN
2100 WRITE( nout, fmt = 9990 )c3
2103 $
CALL zerred( c3, nout )
2104 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2105 CALL zdrvvx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2106 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), dc( 1, 1 ),
2107 $ dc( 1, 2 ), a( 1, 3 ), nmax, a( 1, 4 ), nmax,
2108 $ a( 1, 5 ), nmax, dr( 1, 1 ), dr( 1, 2 ),
2109 $ dr( 1, 3 ), dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ),
2110 $ dr( 1, 7 ), dr( 1, 8 ), result, work, lwork,
2113 $
WRITE( nout, fmt = 9980 )
'ZGEEVX', info
2115 WRITE( nout, fmt = 9973 )
2118 ELSE IF(
lsamen( 3, c3,
'ZSX' ) )
THEN
2126 ntypes = min( maxtyp, ntypes )
2127 IF( ntypes.LT.0 )
THEN
2128 WRITE( nout, fmt = 9990 )c3
2131 $
CALL zerred( c3, nout )
2132 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2133 CALL zdrvsx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2134 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2135 $ dc( 1, 1 ), dc( 1, 2 ), dc( 1, 3 ), a( 1, 4 ),
2136 $ nmax, a( 1, 5 ), result, work, lwork, rwork,
2139 $
WRITE( nout, fmt = 9980 )
'ZGEESX', info
2141 WRITE( nout, fmt = 9973 )
2144 ELSE IF(
lsamen( 3, c3,
'ZGG' ) )
THEN
2158 ntypes = min( maxtyp, ntypes )
2159 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2161 IF( tstchk .AND. tsterr )
2162 $
CALL zerrgg( 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 zchkgg( 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 $ dc( 1, 1 ), dc( 1, 2 ), dc( 1, 3 ),
2187 $ dc( 1, 4 ), a( 1, 13 ), a( 1, 14 ), work,
2188 $ lwork, rwork, logwrk, result, info )
2190 $
WRITE( nout, fmt = 9980 )
'ZCHKGG', info
2194 ELSE IF(
lsamen( 3, c3,
'ZGS' ) )
THEN
2202 ntypes = min( maxtyp, ntypes )
2203 IF( ntypes.LE.0 )
THEN
2204 WRITE( nout, fmt = 9990 )c3
2207 $
CALL zerrgg( c3, nout )
2208 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2209 CALL zdrges( 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 $ dc( 1, 1 ), dc( 1, 2 ), work, lwork, rwork,
2213 $ result, logwrk, info )
2216 $
WRITE( nout, fmt = 9980 )
'ZDRGES', info
2220 CALL zdrges3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2221 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2222 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2223 $ dc( 1, 1 ), dc( 1, 2 ), work, lwork, rwork,
2224 $ result, logwrk, info )
2227 $
WRITE( nout, fmt = 9980 )
'ZDRGES3', info
2229 WRITE( nout, fmt = 9973 )
2242 WRITE( nout, fmt = 9990 )c3
2245 $
CALL zerrgg( c3, nout )
2246 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2248 CALL zdrgsx( 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 ), dc( 1, 1 ), dc( 1, 2 ), c,
2251 $ ncmax*ncmax, s, work, lwork, rwork, iwork,
2252 $ liwork, logwrk, info )
2254 $
WRITE( nout, fmt = 9980 )
'ZDRGSX', info
2256 WRITE( nout, fmt = 9973 )
2259 ELSE IF(
lsamen( 3, c3,
'ZGV' ) )
THEN
2267 ntypes = min( maxtyp, ntypes )
2268 IF( ntypes.LE.0 )
THEN
2269 WRITE( nout, fmt = 9990 )c3
2272 $
CALL zerrgg( c3, nout )
2273 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2274 CALL zdrgev( 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, dc( 1, 1 ), dc( 1, 2 ),
2278 $ dc( 1, 3 ), dc( 1, 4 ), work, lwork, rwork,
2281 $
WRITE( nout, fmt = 9980 )
'ZDRGEV', info
2286 CALL zdrgev3( 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, dc( 1, 1 ), dc( 1, 2 ),
2290 $ dc( 1, 3 ), dc( 1, 4 ), work, lwork, rwork,
2293 $
WRITE( nout, fmt = 9980 )
'ZDRGEV3', info
2295 WRITE( nout, fmt = 9973 )
2308 WRITE( nout, fmt = 9990 )c3
2311 $
CALL zerrgg( c3, nout )
2312 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2313 CALL zdrgvx( nn, thresh, nin, nout, a( 1, 1 ), nmax,
2314 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), dc( 1, 1 ),
2315 $ dc( 1, 2 ), a( 1, 5 ), a( 1, 6 ), iwork( 1 ),
2316 $ iwork( 2 ), dr( 1, 1 ), dr( 1, 2 ), dr( 1, 3 ),
2317 $ dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ), work,
2318 $ lwork, rwork, iwork( 3 ), liwork-2, result,
2322 $
WRITE( nout, fmt = 9980 )
'ZDRGVX', info
2324 WRITE( nout, fmt = 9973 )
2327 ELSE IF(
lsamen( 3, c3,
'ZHB' ) )
THEN
2334 ntypes = min( maxtyp, ntypes )
2335 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2338 n_threads = omp_get_max_threads()
2340 CALL omp_set_num_threads(one_thread)
2342 CALL zerrst(
'ZHB', nout )
2344 CALL omp_set_num_threads(n_threads)
2351 CALL zchkhb2stg( nn, nval, nk, kval, maxtyp, dotype, iseed,
2352 $ thresh, nout, a( 1, 1 ), nmax, dr( 1, 1 ),
2353 $ dr( 1, 2 ), dr( 1, 3 ), dr( 1, 4 ), dr( 1, 5 ),
2354 $ a( 1, 2 ), nmax, work, lwork, rwork, result,
2357 $
WRITE( nout, fmt = 9980 )
'ZCHKHB', info
2359 ELSE IF(
lsamen( 3, c3,
'ZBB' ) )
THEN
2366 ntypes = min( maxtyp, ntypes )
2367 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2368 DO 370 i = 1, nparms
2371 IF( newsd.EQ.0 )
THEN
2373 iseed( k ) = ioldsd( k )
2376 WRITE( nout, fmt = 9966 )c3, nrhs
2377 CALL zchkbb( nn, mval, nval, nk, kval, maxtyp, dotype, nrhs,
2378 $ iseed, thresh, nout, a( 1, 1 ), nmax,
2379 $ a( 1, 2 ), 2*nmax, dr( 1, 1 ), dr( 1, 2 ),
2380 $ a( 1, 4 ), nmax, a( 1, 5 ), nmax, a( 1, 6 ),
2381 $ nmax, a( 1, 7 ), work, lwork, rwork, result,
2384 $
WRITE( nout, fmt = 9980 )
'ZCHKBB', info
2387 ELSE IF(
lsamen( 3, c3,
'GLM' ) )
THEN
2395 $
CALL zerrgg(
'GLM', nout )
2396 CALL zckglm( nn, nval, mval, pval, ntypes, iseed, thresh, nmax,
2397 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2398 $ work, dr( 1, 1 ), nin, nout, info )
2400 $
WRITE( nout, fmt = 9980 )
'ZCKGLM', info
2402 ELSE IF(
lsamen( 3, c3,
'GQR' ) )
THEN
2410 $
CALL zerrgg(
'GQR', nout )
2411 CALL zckgqr( nn, mval, nn, pval, nn, nval, ntypes, iseed,
2412 $ thresh, nmax, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
2413 $ a( 1, 4 ), taua, b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
2414 $ b( 1, 4 ), b( 1, 5 ), taub, work, dr( 1, 1 ), nin,
2417 $
WRITE( nout, fmt = 9980 )
'ZCKGQR', info
2419 ELSE IF(
lsamen( 3, c3,
'GSV' ) )
THEN
2427 $
CALL zerrgg(
'GSV', nout )
2428 CALL zckgsv( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2429 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
2430 $ a( 1, 3 ), b( 1, 3 ), a( 1, 4 ), alpha, beta,
2431 $ b( 1, 4 ), iwork, work, dr( 1, 1 ), nin, nout,
2434 $
WRITE( nout, fmt = 9980 )
'ZCKGSV', info
2436 ELSE IF(
lsamen( 3, c3,
'CSD' ) )
THEN
2444 $
CALL zerrgg(
'CSD', nout )
2445 CALL zckcsd( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2446 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), a( 1, 4 ),
2447 $ a( 1, 5 ), a( 1, 6 ), rwork, iwork, work,
2448 $ dr( 1, 1 ), nin, nout, info )
2450 $
WRITE( nout, fmt = 9980 )
'ZCKCSD', info
2452 ELSE IF(
lsamen( 3, c3,
'LSE' ) )
THEN
2460 $
CALL zerrgg(
'LSE', nout )
2461 CALL zcklse( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2462 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2463 $ work, dr( 1, 1 ), nin, nout, info )
2465 $
WRITE( nout, fmt = 9980 )
'ZCKLSE', info
2467 WRITE( nout, fmt = * )
2468 WRITE( nout, fmt = * )
2469 WRITE( nout, fmt = 9992 )c3
2471 IF( .NOT.( zgx .OR. zxv ) )
2474 WRITE( nout, fmt = 9994 )
2476 WRITE( nout, fmt = 9993 )s2 - s1
2478 DEALLOCATE (s, stat = allocatestatus)
2479 DEALLOCATE (a, stat = allocatestatus)
2480 DEALLOCATE (b, stat = allocatestatus)
2481 DEALLOCATE (c, stat = allocatestatus)
2482 DEALLOCATE (rwork, stat = allocatestatus)
2483 DEALLOCATE (work, stat = allocatestatus)
2485 9999
FORMAT( /
' Execution not attempted due to input errors' )
2486 9997
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4 )
2487 9996
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NS =', i4,
2488 $
', MAXB =', i4,
', IACC22 =', i4,
', NBCOL =', i4 )
2489 9995
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2491 9994
FORMAT( / /
' End of tests' )
2492 9993
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
2493 9992
FORMAT( 1x, a3,
': Unrecognized path name' )
2494 9991
FORMAT( / /
' *** Invalid integer value in column ', i2,
2495 $
' of input',
' line:', / a79 )
2496 9990
FORMAT( / / 1x, a3,
' routines were not tested' )
2497 9989
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be >=',
2499 9988
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be <=',
2501 9987
FORMAT(
' Tests of the Nonsymmetric Eigenvalue Problem routines' )
2502 9986
FORMAT(
' Tests of the Hermitian Eigenvalue Problem routines' )
2503 9985
FORMAT(
' Tests of the Singular Value Decomposition routines' )
2504 9984
FORMAT( /
' The following parameter values will be used:' )
2505 9983
FORMAT( 4x, a, 10i6, / 10x, 10i6 )
2506 9982
FORMAT( /
' Routines pass computational tests if test ratio is ',
2507 $
'less than', f8.2, / )
2508 9981
FORMAT(
' Relative machine ', a,
' is taken to be', d16.6 )
2509 9980
FORMAT(
' *** Error code from ', a,
' = ', i4 )
2510 9979
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2511 $ /
' ZGEEV (eigenvalues and eigevectors)' )
2512 9978
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2513 $ /
' ZGEES (Schur form)' )
2514 9977
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2515 $
' Driver', /
' ZGEEVX (eigenvalues, eigenvectors and',
2516 $
' condition numbers)' )
2517 9976
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2518 $
' Driver', /
' ZGEESX (Schur form and condition',
2520 9975
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2521 $
'Problem routines' )
2522 9974
FORMAT(
' Tests of ZHBTRD', /
' (reduction of a Hermitian band ',
2523 $
'matrix to real tridiagonal form)' )
2524 9973
FORMAT( / 1x, 71(
'-' ) )
2525 9972
FORMAT( /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1 )
2526 9971
FORMAT( /
' Tests of the Generalized Linear Regression Model ',
2528 9970
FORMAT( /
' Tests of the Generalized QR and RQ routines' )
2529 9969
FORMAT( /
' Tests of the Generalized Singular Value',
2530 $
' Decomposition routines' )
2531 9968
FORMAT( /
' Tests of the Linear Least Squares routines' )
2532 9967
FORMAT(
' Tests of ZGBBRD', /
' (reduction of a general band ',
2533 $
'matrix to real bidiagonal form)' )
2534 9966
FORMAT( / / 1x, a3,
': NRHS =', i4 )
2535 9965
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2536 $
'Problem Expert Driver ZGGESX' )
2537 9964
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2538 $
'Problem Driver ZGGES' )
2539 9963
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2540 $
'Problem Driver ZGGEV' )
2541 9962
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2542 $
'Problem Expert Driver ZGGEVX' )
2543 9961
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2545 $
', INWIN =', i4,
', INIBL =', i4,
', ISHFTS =', i4,
2547 9960
FORMAT( /
' Tests of the CS Decomposition routines' )
subroutine alareq(path, nmats, dotype, ntypes, nin, nout)
ALAREQ
subroutine xlaenv(ispec, nvalue)
XLAENV
subroutine ilaver(vers_major, vers_minor, vers_patch)
ILAVER returns the LAPACK version.
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)
subroutine zchkbb(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, rwork, result, info)
ZCHKBB
subroutine zchkbd(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, rwork, nout, info)
ZCHKBD
subroutine zchkbk(nin, nout)
ZCHKBK
subroutine zchkbl(nin, nout)
ZCHKBL
subroutine zchkec(thresh, tsterr, nin, nout)
ZCHKEC
subroutine zchkgg(nsizes, nn, ntypes, dotype, iseed, thresh, tstdif, thrshn, nounit, a, lda, b, h, t, s1, s2, p1, p2, u, ldu, v, q, z, alpha1, beta1, alpha3, beta3, evectl, evectr, work, lwork, rwork, llwork, result, info)
ZCHKGG
subroutine zchkgk(nin, nout)
ZCHKGK
subroutine zchkgl(nin, nout)
ZCHKGL
subroutine zchkhb2stg(nsizes, nn, nwdths, kk, ntypes, dotype, iseed, thresh, nounit, a, lda, sd, se, d1, d2, d3, u, ldu, work, lwork, rwork, result, info)
ZCHKHB2STG
subroutine zchkhb(nsizes, nn, nwdths, kk, ntypes, dotype, iseed, thresh, nounit, a, lda, sd, se, u, ldu, work, lwork, rwork, result, info)
ZCHKHB
subroutine zchkhs(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, h, t1, t2, u, ldu, z, uz, w1, w3, evectl, evectr, evecty, evectx, uu, tau, work, nwork, rwork, iwork, select, result, info)
ZCHKHS
subroutine zchkst2stg(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, rwork, lrwork, iwork, liwork, result, info)
ZCHKST2STG
subroutine zchkst(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, rwork, lrwork, iwork, liwork, result, info)
ZCHKST
subroutine zckcsd(nm, mval, pval, qval, nmats, iseed, thresh, mmax, x, xf, u1, u2, v1t, v2t, theta, iwork, work, rwork, nin, nout, info)
ZCKCSD
subroutine zckglm(nn, nval, mval, pval, nmats, iseed, thresh, nmax, a, af, b, bf, x, work, rwork, nin, nout, info)
ZCKGLM
subroutine zckgqr(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)
ZCKGQR
subroutine zckgsv(nm, mval, pval, nval, nmats, iseed, thresh, nmax, a, af, b, bf, u, v, q, alpha, beta, r, iwork, work, rwork, nin, nout, info)
ZCKGSV
subroutine zcklse(nn, mval, pval, nval, nmats, iseed, thresh, nmax, a, af, b, bf, x, work, rwork, nin, nout, info)
ZCKLSE
subroutine zdrges3(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, s, t, q, ldq, z, alpha, beta, work, lwork, rwork, result, bwork, info)
ZDRGES3
subroutine zdrges(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, s, t, q, ldq, z, alpha, beta, work, lwork, rwork, result, bwork, info)
ZDRGES
subroutine zdrgev3(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, s, t, q, ldq, z, qe, ldqe, alpha, beta, alpha1, beta1, work, lwork, rwork, result, info)
ZDRGEV3
subroutine zdrgev(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, s, t, q, ldq, z, qe, ldqe, alpha, beta, alpha1, beta1, work, lwork, rwork, result, info)
ZDRGEV
subroutine zdrgsx(nsize, ncmax, thresh, nin, nout, a, lda, b, ai, bi, z, q, alpha, beta, c, ldc, s, work, lwork, rwork, iwork, liwork, bwork, info)
ZDRGSX
subroutine zdrgvx(nsize, thresh, nin, nout, a, lda, b, ai, bi, alpha, beta, vl, vr, ilo, ihi, lscale, rscale, s, dtru, dif, diftru, work, lwork, rwork, iwork, liwork, result, bwork, info)
ZDRGVX
subroutine zdrvbd(nsizes, mm, nn, ntypes, dotype, iseed, thresh, a, lda, u, ldu, vt, ldvt, asav, usav, vtsav, s, ssav, e, work, lwork, rwork, iwork, nounit, info)
ZDRVBD
subroutine zdrves(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, h, ht, w, wt, vs, ldvs, result, work, nwork, rwork, iwork, bwork, info)
ZDRVES
subroutine zdrvev(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, h, w, w1, vl, ldvl, vr, ldvr, lre, ldlre, result, work, nwork, rwork, iwork, info)
ZDRVEV
subroutine zdrvsg2stg(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, ldb, d, d2, z, ldz, ab, bb, ap, bp, work, nwork, rwork, lrwork, iwork, liwork, result, info)
ZDRVSG2STG
subroutine zdrvsg(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, ldb, d, z, ldz, ab, bb, ap, bp, work, nwork, rwork, lrwork, iwork, liwork, result, info)
ZDRVSG
subroutine zdrvst2stg(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, d1, d2, d3, wa1, wa2, wa3, u, ldu, v, tau, z, work, lwork, rwork, lrwork, iwork, liwork, result, info)
ZDRVST2STG
subroutine zdrvst(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, d1, d2, d3, wa1, wa2, wa3, u, ldu, v, tau, z, work, lwork, rwork, lrwork, iwork, liwork, result, info)
ZDRVST
subroutine zdrvsx(nsizes, nn, ntypes, dotype, iseed, thresh, niunit, nounit, a, lda, h, ht, w, wt, wtmp, vs, ldvs, vs1, result, work, lwork, rwork, bwork, info)
ZDRVSX
subroutine zdrvvx(nsizes, nn, ntypes, dotype, iseed, thresh, niunit, nounit, a, lda, h, w, w1, vl, ldvl, vr, ldvr, lre, ldlre, rcondv, rcndv1, rcdvin, rconde, rcnde1, rcdein, scale, scale1, result, work, nwork, rwork, info)
ZDRVVX
subroutine zerrbd(path, nunit)
ZERRBD
subroutine zerred(path, nunit)
ZERRED
subroutine zerrgg(path, nunit)
ZERRGG
subroutine zerrhs(path, nunit)
ZERRHS
subroutine zerrst(path, nunit)
ZERRST