1035 #if defined(_OPENMP)
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, n_threads
1076 DOUBLE PRECISION eps, s1, s2, thresh, thrshn
1079 LOGICAL dotype( maxt ), logwrk( nmax )
1080 INTEGER ioldsd( 4 ), iseed( 4 ), iwork( liwork ),
1081 $ kval( maxin ), mval( maxin ), mxbval( maxin ),
1082 $ nbcol( maxin ), nbmin( maxin ), nbval( maxin ),
1083 $ nsval( maxin ), nval( maxin ), nxval( maxin ),
1085 INTEGER inmin( maxin ), inwin( maxin ), inibl( maxin ),
1086 $ ishfts( maxin ), iacc22( maxin )
1087 DOUBLE PRECISION alpha( nmax ), beta( nmax ), dr( nmax, 12 ),
1089 COMPLEX*16 dc( nmax, 6 ), taua( nmax ), taub( nmax ),
1093 INTEGER allocatestatus
1094 DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: rwork, s
1095 COMPLEX*16,
DIMENSION(:),
ALLOCATABLE :: work
1096 COMPLEX*16,
DIMENSION(:,:),
ALLOCATABLE :: a, b, c
1119 INTEGER infot, maxb, nproc, nshift, nunit, seldim,
1123 LOGICAL selval( 20 )
1124 INTEGER iparms( 100 )
1125 DOUBLE PRECISION selwi( 20 ), selwr( 20 )
1128 COMMON / cenvir / nproc, nshift, maxb
1129 COMMON / infoc / infot, nunit, ok, lerr
1130 COMMON / srnamc / srnamt
1131 COMMON / sslct / selopt, seldim, selval, selwr, selwi
1132 COMMON / claenv / iparms
1135 DATA intstr /
'0123456789' /
1136 DATA ioldsd / 0, 0, 0, 1 /
1140 ALLOCATE ( s(nmax*nmax), stat = allocatestatus )
1141 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1142 ALLOCATE ( a(nmax*nmax,need), stat = allocatestatus )
1143 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1144 ALLOCATE ( b(nmax*nmax,5), stat = allocatestatus )
1145 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1146 ALLOCATE ( c(ncmax*ncmax,ncmax*ncmax), stat = allocatestatus )
1147 IF (allocatestatus /= 0) stop
"*** Not enough memory ***"
1148 ALLOCATE ( rwork(lwork), 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,
'ZHS' )
1172 sep =
lsamen( 3, path,
'SEP' ) .OR.
lsamen( 3, path,
'ZST' ) .OR.
1173 $
lsamen( 3, path,
'ZSG' ) .OR.
lsamen( 3, path,
'SE2' )
1174 svd =
lsamen( 3, path,
'SVD' ) .OR.
lsamen( 3, path,
'ZBD' )
1175 zev =
lsamen( 3, path,
'ZEV' )
1176 zes =
lsamen( 3, path,
'ZES' )
1177 zvx =
lsamen( 3, path,
'ZVX' )
1178 zsx =
lsamen( 3, path,
'ZSX' )
1179 zgg =
lsamen( 3, path,
'ZGG' )
1180 zgs =
lsamen( 3, path,
'ZGS' )
1181 zgx =
lsamen( 3, path,
'ZGX' )
1182 zgv =
lsamen( 3, path,
'ZGV' )
1183 zxv =
lsamen( 3, path,
'ZXV' )
1184 zhb =
lsamen( 3, path,
'ZHB' )
1185 zbb =
lsamen( 3, path,
'ZBB' )
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 zbl =
lsamen( 3, path,
'ZBL' )
1192 zbk =
lsamen( 3, path,
'ZBK' )
1193 zgl =
lsamen( 3, path,
'ZGL' )
1194 zgk =
lsamen( 3, path,
'ZGK' )
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,
'ZEC' ) )
THEN
1266 READ( nin, fmt = * )thresh
1270 CALL zchkec( thresh, tsterr, nin, nout )
1273 WRITE( nout, fmt = 9992 )path
1276 CALL ilaver( vers_major, vers_minor, vers_patch )
1277 WRITE( nout, fmt = 9972 ) vers_major, vers_minor, vers_patch
1278 WRITE( nout, fmt = 9984 )
1282 READ( nin, fmt = * )nn
1284 WRITE( nout, fmt = 9989 )
' NN ', nn, 1
1287 ELSE IF( nn.GT.maxin )
THEN
1288 WRITE( nout, fmt = 9988 )
' NN ', nn, maxin
1295 IF( .NOT.( zgx .OR. zxv ) )
THEN
1296 READ( nin, fmt = * )( mval( i ), i = 1, nn )
1303 IF( mval( i ).LT.0 )
THEN
1304 WRITE( nout, fmt = 9989 )vname, mval( i ), 0
1306 ELSE IF( mval( i ).GT.nmax )
THEN
1307 WRITE( nout, fmt = 9988 )vname, mval( i ), nmax
1311 WRITE( nout, fmt = 9983 )
'M: ', ( mval( i ), i = 1, nn )
1316 IF( glm .OR. gqr .OR. gsv .OR. csd .OR.
lse )
THEN
1317 READ( nin, fmt = * )( pval( i ), i = 1, nn )
1319 IF( pval( i ).LT.0 )
THEN
1320 WRITE( nout, fmt = 9989 )
' P ', pval( i ), 0
1322 ELSE IF( pval( i ).GT.nmax )
THEN
1323 WRITE( nout, fmt = 9988 )
' P ', pval( i ), nmax
1327 WRITE( nout, fmt = 9983 )
'P: ', ( pval( i ), i = 1, nn )
1332 IF( svd .OR. zbb .OR. glm .OR. gqr .OR. gsv .OR. csd .OR.
1334 READ( nin, fmt = * )( nval( i ), i = 1, nn )
1336 IF( nval( i ).LT.0 )
THEN
1337 WRITE( nout, fmt = 9989 )
' N ', nval( i ), 0
1339 ELSE IF( nval( i ).GT.nmax )
THEN
1340 WRITE( nout, fmt = 9988 )
' N ', nval( i ), nmax
1346 nval( i ) = mval( i )
1349 IF( .NOT.( zgx .OR. zxv ) )
THEN
1350 WRITE( nout, fmt = 9983 )
'N: ', ( nval( i ), i = 1, nn )
1352 WRITE( nout, fmt = 9983 )
'N: ', nn
1357 IF( zhb .OR. zbb )
THEN
1358 READ( nin, fmt = * )nk
1359 READ( nin, fmt = * )( kval( i ), i = 1, nk )
1361 IF( kval( i ).LT.0 )
THEN
1362 WRITE( nout, fmt = 9989 )
' K ', kval( i ), 0
1364 ELSE IF( kval( i ).GT.nmax )
THEN
1365 WRITE( nout, fmt = 9988 )
' K ', kval( i ), nmax
1369 WRITE( nout, fmt = 9983 )
'K: ', ( kval( i ), i = 1, nk )
1372 IF( zev .OR. zes .OR. zvx .OR. zsx )
THEN
1377 READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1378 $ inmin( 1 ), inwin( 1 ), inibl(1), ishfts(1), iacc22(1)
1379 IF( nbval( 1 ).LT.1 )
THEN
1380 WRITE( nout, fmt = 9989 )
' NB ', nbval( 1 ), 1
1382 ELSE IF( nbmin( 1 ).LT.1 )
THEN
1383 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( 1 ), 1
1385 ELSE IF( nxval( 1 ).LT.1 )
THEN
1386 WRITE( nout, fmt = 9989 )
' NX ', nxval( 1 ), 1
1388 ELSE IF( inmin( 1 ).LT.1 )
THEN
1389 WRITE( nout, fmt = 9989 )
' INMIN ', inmin( 1 ), 1
1391 ELSE IF( inwin( 1 ).LT.1 )
THEN
1392 WRITE( nout, fmt = 9989 )
' INWIN ', inwin( 1 ), 1
1394 ELSE IF( inibl( 1 ).LT.1 )
THEN
1395 WRITE( nout, fmt = 9989 )
' INIBL ', inibl( 1 ), 1
1397 ELSE IF( ishfts( 1 ).LT.1 )
THEN
1398 WRITE( nout, fmt = 9989 )
' ISHFTS ', ishfts( 1 ), 1
1400 ELSE IF( iacc22( 1 ).LT.0 )
THEN
1401 WRITE( nout, fmt = 9989 )
' IACC22 ', iacc22( 1 ), 0
1404 CALL xlaenv( 1, nbval( 1 ) )
1405 CALL xlaenv( 2, nbmin( 1 ) )
1406 CALL xlaenv( 3, nxval( 1 ) )
1407 CALL xlaenv(12, max( 11, inmin( 1 ) ) )
1408 CALL xlaenv(13, inwin( 1 ) )
1409 CALL xlaenv(14, inibl( 1 ) )
1410 CALL xlaenv(15, ishfts( 1 ) )
1411 CALL xlaenv(16, iacc22( 1 ) )
1412 WRITE( nout, fmt = 9983 )
'NB: ', nbval( 1 )
1413 WRITE( nout, fmt = 9983 )
'NBMIN:', nbmin( 1 )
1414 WRITE( nout, fmt = 9983 )
'NX: ', nxval( 1 )
1415 WRITE( nout, fmt = 9983 )
'INMIN: ', inmin( 1 )
1416 WRITE( nout, fmt = 9983 )
'INWIN: ', inwin( 1 )
1417 WRITE( nout, fmt = 9983 )
'INIBL: ', inibl( 1 )
1418 WRITE( nout, fmt = 9983 )
'ISHFTS: ', ishfts( 1 )
1419 WRITE( nout, fmt = 9983 )
'IACC22: ', iacc22( 1 )
1421 ELSE IF( zgs .OR. zgx .OR. zgv .OR. zxv )
THEN
1426 READ( nin, fmt = * )nbval( 1 ), nbmin( 1 ), nxval( 1 ),
1427 $ nsval( 1 ), mxbval( 1 )
1428 IF( nbval( 1 ).LT.1 )
THEN
1429 WRITE( nout, fmt = 9989 )
' NB ', nbval( 1 ), 1
1431 ELSE IF( nbmin( 1 ).LT.1 )
THEN
1432 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( 1 ), 1
1434 ELSE IF( nxval( 1 ).LT.1 )
THEN
1435 WRITE( nout, fmt = 9989 )
' NX ', nxval( 1 ), 1
1437 ELSE IF( nsval( 1 ).LT.2 )
THEN
1438 WRITE( nout, fmt = 9989 )
' NS ', nsval( 1 ), 2
1440 ELSE IF( mxbval( 1 ).LT.1 )
THEN
1441 WRITE( nout, fmt = 9989 )
' MAXB ', mxbval( 1 ), 1
1444 CALL xlaenv( 1, nbval( 1 ) )
1445 CALL xlaenv( 2, nbmin( 1 ) )
1446 CALL xlaenv( 3, nxval( 1 ) )
1447 CALL xlaenv( 4, nsval( 1 ) )
1448 CALL xlaenv( 8, mxbval( 1 ) )
1449 WRITE( nout, fmt = 9983 )
'NB: ', nbval( 1 )
1450 WRITE( nout, fmt = 9983 )
'NBMIN:', nbmin( 1 )
1451 WRITE( nout, fmt = 9983 )
'NX: ', nxval( 1 )
1452 WRITE( nout, fmt = 9983 )
'NS: ', nsval( 1 )
1453 WRITE( nout, fmt = 9983 )
'MAXB: ', mxbval( 1 )
1454 ELSE IF( .NOT.zhb .AND. .NOT.glm .AND. .NOT.gqr .AND. .NOT.
1455 $ gsv .AND. .NOT.csd .AND. .NOT.
lse )
THEN
1460 READ( nin, fmt = * )nparms
1461 IF( nparms.LT.1 )
THEN
1462 WRITE( nout, fmt = 9989 )
'NPARMS', nparms, 1
1465 ELSE IF( nparms.GT.maxin )
THEN
1466 WRITE( nout, fmt = 9988 )
'NPARMS', nparms, maxin
1474 READ( nin, fmt = * )( nbval( i ), i = 1, nparms )
1476 IF( nbval( i ).LT.0 )
THEN
1477 WRITE( nout, fmt = 9989 )
' NB ', nbval( i ), 0
1479 ELSE IF( nbval( i ).GT.nmax )
THEN
1480 WRITE( nout, fmt = 9988 )
' NB ', nbval( i ), nmax
1484 WRITE( nout, fmt = 9983 )
'NB: ',
1485 $ ( nbval( i ), i = 1, nparms )
1490 IF( nep .OR. sep .OR. svd .OR. zgg )
THEN
1491 READ( nin, fmt = * )( nbmin( i ), i = 1, nparms )
1493 IF( nbmin( i ).LT.0 )
THEN
1494 WRITE( nout, fmt = 9989 )
'NBMIN ', nbmin( i ), 0
1496 ELSE IF( nbmin( i ).GT.nmax )
THEN
1497 WRITE( nout, fmt = 9988 )
'NBMIN ', nbmin( i ), nmax
1501 WRITE( nout, fmt = 9983 )
'NBMIN:',
1502 $ ( nbmin( i ), i = 1, nparms )
1511 IF( nep .OR. sep .OR. svd )
THEN
1512 READ( nin, fmt = * )( nxval( i ), i = 1, nparms )
1513 DO 100 i = 1, nparms
1514 IF( nxval( i ).LT.0 )
THEN
1515 WRITE( nout, fmt = 9989 )
' NX ', nxval( i ), 0
1517 ELSE IF( nxval( i ).GT.nmax )
THEN
1518 WRITE( nout, fmt = 9988 )
' NX ', nxval( i ), nmax
1522 WRITE( nout, fmt = 9983 )
'NX: ',
1523 $ ( nxval( i ), i = 1, nparms )
1525 DO 110 i = 1, nparms
1533 IF( svd .OR. zbb .OR. zgg )
THEN
1534 READ( nin, fmt = * )( nsval( i ), i = 1, nparms )
1535 DO 120 i = 1, nparms
1536 IF( nsval( i ).LT.0 )
THEN
1537 WRITE( nout, fmt = 9989 )
' NS ', nsval( i ), 0
1539 ELSE IF( nsval( i ).GT.nmax )
THEN
1540 WRITE( nout, fmt = 9988 )
' NS ', nsval( i ), nmax
1544 WRITE( nout, fmt = 9983 )
'NS: ',
1545 $ ( nsval( i ), i = 1, nparms )
1547 DO 130 i = 1, nparms
1555 READ( nin, fmt = * )( mxbval( i ), i = 1, nparms )
1556 DO 140 i = 1, nparms
1557 IF( mxbval( i ).LT.0 )
THEN
1558 WRITE( nout, fmt = 9989 )
' MAXB ', mxbval( i ), 0
1560 ELSE IF( mxbval( i ).GT.nmax )
THEN
1561 WRITE( nout, fmt = 9988 )
' MAXB ', mxbval( i ), nmax
1565 WRITE( nout, fmt = 9983 )
'MAXB: ',
1566 $ ( mxbval( i ), i = 1, nparms )
1568 DO 150 i = 1, nparms
1576 READ( nin, fmt = * )( inmin( i ), i = 1, nparms )
1577 DO 540 i = 1, nparms
1578 IF( inmin( i ).LT.0 )
THEN
1579 WRITE( nout, fmt = 9989 )
' INMIN ', inmin( i ), 0
1583 WRITE( nout, fmt = 9983 )
'INMIN: ',
1584 $ ( inmin( i ), i = 1, nparms )
1586 DO 550 i = 1, nparms
1594 READ( nin, fmt = * )( inwin( i ), i = 1, nparms )
1595 DO 560 i = 1, nparms
1596 IF( inwin( i ).LT.0 )
THEN
1597 WRITE( nout, fmt = 9989 )
' INWIN ', inwin( i ), 0
1601 WRITE( nout, fmt = 9983 )
'INWIN: ',
1602 $ ( inwin( i ), i = 1, nparms )
1604 DO 570 i = 1, nparms
1612 READ( nin, fmt = * )( inibl( i ), i = 1, nparms )
1613 DO 580 i = 1, nparms
1614 IF( inibl( i ).LT.0 )
THEN
1615 WRITE( nout, fmt = 9989 )
' INIBL ', inibl( i ), 0
1619 WRITE( nout, fmt = 9983 )
'INIBL: ',
1620 $ ( inibl( i ), i = 1, nparms )
1622 DO 590 i = 1, nparms
1630 READ( nin, fmt = * )( ishfts( i ), i = 1, nparms )
1631 DO 600 i = 1, nparms
1632 IF( ishfts( i ).LT.0 )
THEN
1633 WRITE( nout, fmt = 9989 )
' ISHFTS ', ishfts( i ), 0
1637 WRITE( nout, fmt = 9983 )
'ISHFTS: ',
1638 $ ( ishfts( i ), i = 1, nparms )
1640 DO 610 i = 1, nparms
1647 IF( nep .OR. zgg )
THEN
1648 READ( nin, fmt = * )( iacc22( i ), i = 1, nparms )
1649 DO 620 i = 1, nparms
1650 IF( iacc22( i ).LT.0 )
THEN
1651 WRITE( nout, fmt = 9989 )
' IACC22 ', iacc22( i ), 0
1655 WRITE( nout, fmt = 9983 )
'IACC22: ',
1656 $ ( iacc22( i ), i = 1, nparms )
1658 DO 630 i = 1, nparms
1666 READ( nin, fmt = * )( nbcol( i ), i = 1, nparms )
1667 DO 160 i = 1, nparms
1668 IF( nbcol( i ).LT.0 )
THEN
1669 WRITE( nout, fmt = 9989 )
'NBCOL ', nbcol( i ), 0
1671 ELSE IF( nbcol( i ).GT.nmax )
THEN
1672 WRITE( nout, fmt = 9988 )
'NBCOL ', nbcol( i ), nmax
1676 WRITE( nout, fmt = 9983 )
'NBCOL:',
1677 $ ( nbcol( i ), i = 1, nparms )
1679 DO 170 i = 1, nparms
1687 WRITE( nout, fmt = * )
1688 eps =
dlamch(
'Underflow threshold' )
1689 WRITE( nout, fmt = 9981 )
'underflow', eps
1690 eps =
dlamch(
'Overflow threshold' )
1691 WRITE( nout, fmt = 9981 )
'overflow ', eps
1692 eps =
dlamch(
'Epsilon' )
1693 WRITE( nout, fmt = 9981 )
'precision', eps
1697 READ( nin, fmt = * )thresh
1698 WRITE( nout, fmt = 9982 )thresh
1699 IF( sep .OR. svd .OR. zgg )
THEN
1703 READ( nin, fmt = * )tstchk
1707 READ( nin, fmt = * )tstdrv
1712 READ( nin, fmt = * )tsterr
1716 READ( nin, fmt = * )newsd
1721 $
READ( nin, fmt = * )( ioldsd( i ), i = 1, 4 )
1724 iseed( i ) = ioldsd( i )
1728 WRITE( nout, fmt = 9999 )
1739 IF( .NOT.( zgx .OR. zxv ) )
THEN
1742 READ( nin, fmt =
'(A80)',
END = 380 )line
1750 IF( i.GT.lenp )
THEN
1758 IF( line( i: i ).NE.
' ' .AND. line( i: i ).NE.
',' )
THEN
1765 IF( c1.EQ.intstr( k: k ) )
THEN
1770 WRITE( nout, fmt = 9991 )i, line
1775 ELSE IF( i1.GT.0 )
THEN
1785 IF( .NOT.( zev .OR. zes .OR. zvx .OR. zsx .OR. zgv .OR.
1786 $ zgs ) .AND. ntypes.LE.0 )
THEN
1787 WRITE( nout, fmt = 9990 )c3
1800 IF( newsd.EQ.0 )
THEN
1802 iseed( k ) = ioldsd( k )
1806 IF(
lsamen( 3, c3,
'ZHS' ) .OR.
lsamen( 3, c3,
'NEP' ) )
THEN
1819 ntypes = min( maxtyp, ntypes )
1820 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1823 $
CALL zerrhs(
'ZHSEQR', nout )
1824 DO 270 i = 1, nparms
1825 CALL xlaenv( 1, nbval( i ) )
1826 CALL xlaenv( 2, nbmin( i ) )
1827 CALL xlaenv( 3, nxval( i ) )
1828 CALL xlaenv(12, max( 11, inmin( i ) ) )
1829 CALL xlaenv(13, inwin( i ) )
1830 CALL xlaenv(14, inibl( i ) )
1831 CALL xlaenv(15, ishfts( i ) )
1832 CALL xlaenv(16, iacc22( i ) )
1834 IF( newsd.EQ.0 )
THEN
1836 iseed( k ) = ioldsd( k )
1839 WRITE( nout, fmt = 9961 )c3, nbval( i ), nbmin( i ),
1840 $ nxval( i ), max( 11, inmin(i)),
1841 $ inwin( i ), inibl( i ), ishfts( i ), iacc22( i )
1842 CALL zchkhs( nn, nval, maxtyp, dotype, iseed, thresh, nout,
1843 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
1844 $ a( 1, 4 ), a( 1, 5 ), nmax, a( 1, 6 ),
1845 $ a( 1, 7 ), dc( 1, 1 ), dc( 1, 2 ), a( 1, 8 ),
1846 $ a( 1, 9 ), a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
1847 $ dc( 1, 3 ), work, lwork, rwork, iwork, logwrk,
1850 $
WRITE( nout, fmt = 9980 )
'ZCHKHS', info
1853 ELSE IF(
lsamen( 3, c3,
'ZST' ) .OR.
lsamen( 3, c3,
'SEP' )
1854 $ .OR.
lsamen( 3, c3,
'SE2' ) )
THEN
1865 ntypes = min( maxtyp, ntypes )
1866 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1870 #if defined(_OPENMP)
1871 n_threads = omp_get_num_threads()
1872 CALL omp_set_num_threads(1)
1874 CALL zerrst(
'ZST', nout )
1875 #if defined(_OPENMP)
1876 CALL omp_set_num_threads(n_threads)
1879 DO 290 i = 1, nparms
1880 CALL xlaenv( 1, nbval( i ) )
1881 CALL xlaenv( 2, nbmin( i ) )
1882 CALL xlaenv( 3, nxval( i ) )
1884 IF( newsd.EQ.0 )
THEN
1886 iseed( k ) = ioldsd( k )
1889 WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1892 IF(
lsamen( 3, c3,
'SE2' ) )
THEN
1893 CALL zchkst2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1894 $ nout, a( 1, 1 ), nmax, a( 1, 2 ),
1895 $ dr( 1, 1 ), dr( 1, 2 ), dr( 1, 3 ),
1896 $ dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ),
1897 $ dr( 1, 7 ), dr( 1, 8 ), dr( 1, 9 ),
1898 $ dr( 1, 10 ), dr( 1, 11 ), a( 1, 3 ), nmax,
1899 $ a( 1, 4 ), a( 1, 5 ), dc( 1, 1 ), a( 1, 6 ),
1900 $ work, lwork, rwork, lwork, iwork, liwork,
1903 CALL zchkst( nn, nval, maxtyp, dotype, iseed, thresh,
1904 $ nout, a( 1, 1 ), nmax, a( 1, 2 ),
1905 $ dr( 1, 1 ), dr( 1, 2 ), dr( 1, 3 ),
1906 $ dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ),
1907 $ dr( 1, 7 ), dr( 1, 8 ), dr( 1, 9 ),
1908 $ dr( 1, 10 ), dr( 1, 11 ), a( 1, 3 ), nmax,
1909 $ a( 1, 4 ), a( 1, 5 ), dc( 1, 1 ), a( 1, 6 ),
1910 $ work, lwork, rwork, lwork, iwork, liwork,
1914 $
WRITE( nout, fmt = 9980 )
'ZCHKST', info
1917 IF(
lsamen( 3, c3,
'SE2' ) )
THEN
1918 CALL zdrvst2stg( nn, nval, 18, dotype, iseed, thresh,
1919 $ nout, a( 1, 1 ), nmax, dr( 1, 3 ), dr( 1, 4 ),
1920 $ dr( 1, 5 ), dr( 1, 8 ), dr( 1, 9 ),
1921 $ dr( 1, 10 ), a( 1, 2 ), nmax, a( 1, 3 ),
1922 $ dc( 1, 1 ), a( 1, 4 ), work, lwork, rwork,
1923 $ lwork, iwork, liwork, result, info )
1925 CALL zdrvst( nn, nval, 18, dotype, iseed, thresh, nout,
1926 $ a( 1, 1 ), nmax, dr( 1, 3 ), dr( 1, 4 ),
1927 $ dr( 1, 5 ), dr( 1, 8 ), dr( 1, 9 ),
1928 $ dr( 1, 10 ), a( 1, 2 ), nmax, a( 1, 3 ),
1929 $ dc( 1, 1 ), a( 1, 4 ), work, lwork, rwork,
1930 $ lwork, iwork, liwork, result, info )
1933 $
WRITE( nout, fmt = 9980 )
'ZDRVST', info
1937 ELSE IF(
lsamen( 3, c3,
'ZSG' ) )
THEN
1948 ntypes = min( maxtyp, ntypes )
1949 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1951 DO 310 i = 1, nparms
1952 CALL xlaenv( 1, nbval( i ) )
1953 CALL xlaenv( 2, nbmin( i ) )
1954 CALL xlaenv( 3, nxval( i ) )
1956 IF( newsd.EQ.0 )
THEN
1958 iseed( k ) = ioldsd( k )
1961 WRITE( nout, fmt = 9997 )c3, nbval( i ), nbmin( i ),
1970 CALL zdrvsg2stg( nn, nval, maxtyp, dotype, iseed, thresh,
1971 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
1972 $ dr( 1, 3 ), dr( 1, 4 ), a( 1, 3 ), nmax,
1973 $ a( 1, 4 ), a( 1, 5 ), a( 1, 6 ),
1974 $ a( 1, 7 ), work, lwork, rwork, lwork,
1975 $ iwork, liwork, result, info )
1977 $
WRITE( nout, fmt = 9980 )
'ZDRVSG', info
1981 ELSE IF(
lsamen( 3, c3,
'ZBD' ) .OR.
lsamen( 3, c3,
'SVD' ) )
THEN
1993 ntypes = min( maxtyp, ntypes )
1994 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2000 IF( tsterr .AND. tstchk )
2001 $
CALL zerrbd(
'ZBD', nout )
2002 IF( tsterr .AND. tstdrv )
2003 $
CALL zerred(
'ZBD', nout )
2005 DO 330 i = 1, nparms
2007 CALL xlaenv( 1, nbval( i ) )
2008 CALL xlaenv( 2, nbmin( i ) )
2009 CALL xlaenv( 3, nxval( i ) )
2010 IF( newsd.EQ.0 )
THEN
2012 iseed( k ) = ioldsd( k )
2015 WRITE( nout, fmt = 9995 )c3, nbval( i ), nbmin( i ),
2018 CALL zchkbd( nn, mval, nval, maxtyp, dotype, nrhs, iseed,
2019 $ thresh, a( 1, 1 ), nmax, dr( 1, 1 ),
2020 $ dr( 1, 2 ), dr( 1, 3 ), dr( 1, 4 ),
2021 $ a( 1, 2 ), nmax, a( 1, 3 ), a( 1, 4 ),
2022 $ a( 1, 5 ), nmax, a( 1, 6 ), nmax, a( 1, 7 ),
2023 $ a( 1, 8 ), work, lwork, rwork, nout, info )
2025 $
WRITE( nout, fmt = 9980 )
'ZCHKBD', info
2028 $
CALL zdrvbd( nn, mval, nval, maxtyp, dotype, iseed,
2029 $ thresh, a( 1, 1 ), nmax, a( 1, 2 ), nmax,
2030 $ a( 1, 3 ), nmax, a( 1, 4 ), a( 1, 5 ),
2031 $ a( 1, 6 ), dr( 1, 1 ), dr( 1, 2 ),
2032 $ dr( 1, 3 ), work, lwork, rwork, iwork, nout,
2036 ELSE IF(
lsamen( 3, c3,
'ZEV' ) )
THEN
2044 ntypes = min( maxtyp, ntypes )
2045 IF( ntypes.LE.0 )
THEN
2046 WRITE( nout, fmt = 9990 )c3
2049 $
CALL zerred( c3, nout )
2050 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2051 CALL zdrvev( nn, nval, ntypes, dotype, iseed, thresh, nout,
2052 $ a( 1, 1 ), nmax, a( 1, 2 ), dc( 1, 1 ),
2053 $ dc( 1, 2 ), a( 1, 3 ), nmax, a( 1, 4 ), nmax,
2054 $ a( 1, 5 ), nmax, result, work, lwork, rwork,
2057 $
WRITE( nout, fmt = 9980 )
'ZGEEV', info
2059 WRITE( nout, fmt = 9973 )
2062 ELSE IF(
lsamen( 3, c3,
'ZES' ) )
THEN
2070 ntypes = min( maxtyp, ntypes )
2071 IF( ntypes.LE.0 )
THEN
2072 WRITE( nout, fmt = 9990 )c3
2075 $
CALL zerred( c3, nout )
2076 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2077 CALL zdrves( nn, nval, ntypes, dotype, iseed, thresh, nout,
2078 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2079 $ dc( 1, 1 ), dc( 1, 2 ), a( 1, 4 ), nmax,
2080 $ result, work, lwork, rwork, iwork, logwrk,
2083 $
WRITE( nout, fmt = 9980 )
'ZGEES', info
2085 WRITE( nout, fmt = 9973 )
2088 ELSE IF(
lsamen( 3, c3,
'ZVX' ) )
THEN
2096 ntypes = min( maxtyp, ntypes )
2097 IF( ntypes.LT.0 )
THEN
2098 WRITE( nout, fmt = 9990 )c3
2101 $
CALL zerred( c3, nout )
2102 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2103 CALL zdrvvx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2104 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), dc( 1, 1 ),
2105 $ dc( 1, 2 ), a( 1, 3 ), nmax, a( 1, 4 ), nmax,
2106 $ a( 1, 5 ), nmax, dr( 1, 1 ), dr( 1, 2 ),
2107 $ dr( 1, 3 ), dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ),
2108 $ dr( 1, 7 ), dr( 1, 8 ), result, work, lwork,
2111 $
WRITE( nout, fmt = 9980 )
'ZGEEVX', info
2113 WRITE( nout, fmt = 9973 )
2116 ELSE IF(
lsamen( 3, c3,
'ZSX' ) )
THEN
2124 ntypes = min( maxtyp, ntypes )
2125 IF( ntypes.LT.0 )
THEN
2126 WRITE( nout, fmt = 9990 )c3
2129 $
CALL zerred( c3, nout )
2130 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2131 CALL zdrvsx( nn, nval, ntypes, dotype, iseed, thresh, nin,
2132 $ nout, a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2133 $ dc( 1, 1 ), dc( 1, 2 ), dc( 1, 3 ), a( 1, 4 ),
2134 $ nmax, a( 1, 5 ), result, work, lwork, rwork,
2137 $
WRITE( nout, fmt = 9980 )
'ZGEESX', info
2139 WRITE( nout, fmt = 9973 )
2142 ELSE IF(
lsamen( 3, c3,
'ZGG' ) )
THEN
2156 ntypes = min( maxtyp, ntypes )
2157 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2159 IF( tstchk .AND. tsterr )
2160 $
CALL zerrgg( c3, nout )
2161 DO 350 i = 1, nparms
2162 CALL xlaenv( 1, nbval( i ) )
2163 CALL xlaenv( 2, nbmin( i ) )
2164 CALL xlaenv( 4, nsval( i ) )
2165 CALL xlaenv( 8, mxbval( i ) )
2166 CALL xlaenv( 16, iacc22( i ) )
2167 CALL xlaenv( 5, nbcol( i ) )
2169 IF( newsd.EQ.0 )
THEN
2171 iseed( k ) = ioldsd( k )
2174 WRITE( nout, fmt = 9996 )c3, nbval( i ), nbmin( i ),
2175 $ nsval( i ), mxbval( i ), iacc22( i ), nbcol( i )
2179 CALL zchkgg( nn, nval, maxtyp, dotype, iseed, thresh,
2180 $ tstdif, thrshn, nout, a( 1, 1 ), nmax,
2181 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2182 $ a( 1, 6 ), a( 1, 7 ), a( 1, 8 ), a( 1, 9 ),
2183 $ nmax, a( 1, 10 ), a( 1, 11 ), a( 1, 12 ),
2184 $ dc( 1, 1 ), dc( 1, 2 ), dc( 1, 3 ),
2185 $ dc( 1, 4 ), a( 1, 13 ), a( 1, 14 ), work,
2186 $ lwork, rwork, logwrk, result, info )
2188 $
WRITE( nout, fmt = 9980 )
'ZCHKGG', info
2192 ELSE IF(
lsamen( 3, c3,
'ZGS' ) )
THEN
2200 ntypes = min( maxtyp, ntypes )
2201 IF( ntypes.LE.0 )
THEN
2202 WRITE( nout, fmt = 9990 )c3
2205 $
CALL zerrgg( c3, nout )
2206 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2207 CALL zdrges( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2208 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2209 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2210 $ dc( 1, 1 ), dc( 1, 2 ), work, lwork, rwork,
2211 $ result, logwrk, info )
2214 $
WRITE( nout, fmt = 9980 )
'ZDRGES', info
2218 CALL zdrges3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2219 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2220 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2221 $ dc( 1, 1 ), dc( 1, 2 ), work, lwork, rwork,
2222 $ result, logwrk, info )
2225 $
WRITE( nout, fmt = 9980 )
'ZDRGES3', info
2227 WRITE( nout, fmt = 9973 )
2240 WRITE( nout, fmt = 9990 )c3
2243 $
CALL zerrgg( c3, nout )
2244 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2246 CALL zdrgsx( nn, ncmax, thresh, nin, nout, a( 1, 1 ), nmax,
2247 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2248 $ a( 1, 6 ), dc( 1, 1 ), dc( 1, 2 ), c,
2249 $ ncmax*ncmax, s, work, lwork, rwork, iwork,
2250 $ liwork, logwrk, info )
2252 $
WRITE( nout, fmt = 9980 )
'ZDRGSX', info
2254 WRITE( nout, fmt = 9973 )
2257 ELSE IF(
lsamen( 3, c3,
'ZGV' ) )
THEN
2265 ntypes = min( maxtyp, ntypes )
2266 IF( ntypes.LE.0 )
THEN
2267 WRITE( nout, fmt = 9990 )c3
2270 $
CALL zerrgg( c3, nout )
2271 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2272 CALL zdrgev( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2273 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2274 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2275 $ a( 1, 9 ), nmax, dc( 1, 1 ), dc( 1, 2 ),
2276 $ dc( 1, 3 ), dc( 1, 4 ), work, lwork, rwork,
2279 $
WRITE( nout, fmt = 9980 )
'ZDRGEV', info
2284 CALL zdrgev3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2285 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2286 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2287 $ a( 1, 9 ), nmax, dc( 1, 1 ), dc( 1, 2 ),
2288 $ dc( 1, 3 ), dc( 1, 4 ), work, lwork, rwork,
2291 $
WRITE( nout, fmt = 9980 )
'ZDRGEV3', info
2293 WRITE( nout, fmt = 9973 )
2306 WRITE( nout, fmt = 9990 )c3
2309 $
CALL zerrgg( c3, nout )
2310 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2311 CALL zdrgvx( nn, thresh, nin, nout, a( 1, 1 ), nmax,
2312 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), dc( 1, 1 ),
2313 $ dc( 1, 2 ), a( 1, 5 ), a( 1, 6 ), iwork( 1 ),
2314 $ iwork( 2 ), dr( 1, 1 ), dr( 1, 2 ), dr( 1, 3 ),
2315 $ dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ), work,
2316 $ lwork, rwork, iwork( 3 ), liwork-2, result,
2320 $
WRITE( nout, fmt = 9980 )
'ZDRGVX', info
2322 WRITE( nout, fmt = 9973 )
2325 ELSE IF(
lsamen( 3, c3,
'ZHB' ) )
THEN
2332 ntypes = min( maxtyp, ntypes )
2333 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2335 #if defined(_OPENMP)
2336 n_threads = omp_get_num_threads()
2337 CALL omp_set_num_threads(1)
2339 CALL zerrst(
'ZHB', nout )
2340 #if defined(_OPENMP)
2341 CALL omp_set_num_threads(n_threads)
2348 CALL zchkhb2stg( nn, nval, nk, kval, maxtyp, dotype, iseed,
2349 $ thresh, nout, a( 1, 1 ), nmax, dr( 1, 1 ),
2350 $ dr( 1, 2 ), dr( 1, 3 ), dr( 1, 4 ), dr( 1, 5 ),
2351 $ a( 1, 2 ), nmax, work, lwork, rwork, result,
2354 $
WRITE( nout, fmt = 9980 )
'ZCHKHB', info
2356 ELSE IF(
lsamen( 3, c3,
'ZBB' ) )
THEN
2363 ntypes = min( maxtyp, ntypes )
2364 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2365 DO 370 i = 1, nparms
2368 IF( newsd.EQ.0 )
THEN
2370 iseed( k ) = ioldsd( k )
2373 WRITE( nout, fmt = 9966 )c3, nrhs
2374 CALL zchkbb( nn, mval, nval, nk, kval, maxtyp, dotype, nrhs,
2375 $ iseed, thresh, nout, a( 1, 1 ), nmax,
2376 $ a( 1, 2 ), 2*nmax, dr( 1, 1 ), dr( 1, 2 ),
2377 $ a( 1, 4 ), nmax, a( 1, 5 ), nmax, a( 1, 6 ),
2378 $ nmax, a( 1, 7 ), work, lwork, rwork, result,
2381 $
WRITE( nout, fmt = 9980 )
'ZCHKBB', info
2384 ELSE IF(
lsamen( 3, c3,
'GLM' ) )
THEN
2392 $
CALL zerrgg(
'GLM', nout )
2393 CALL zckglm( nn, nval, mval, pval, ntypes, iseed, thresh, nmax,
2394 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2395 $ work, dr( 1, 1 ), nin, nout, info )
2397 $
WRITE( nout, fmt = 9980 )
'ZCKGLM', info
2399 ELSE IF(
lsamen( 3, c3,
'GQR' ) )
THEN
2407 $
CALL zerrgg(
'GQR', nout )
2408 CALL zckgqr( nn, mval, nn, pval, nn, nval, ntypes, iseed,
2409 $ thresh, nmax, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
2410 $ a( 1, 4 ), taua, b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
2411 $ b( 1, 4 ), b( 1, 5 ), taub, work, dr( 1, 1 ), nin,
2414 $
WRITE( nout, fmt = 9980 )
'ZCKGQR', info
2416 ELSE IF(
lsamen( 3, c3,
'GSV' ) )
THEN
2424 $
CALL zerrgg(
'GSV', nout )
2425 CALL zckgsv( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2426 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
2427 $ a( 1, 3 ), b( 1, 3 ), a( 1, 4 ), alpha, beta,
2428 $ b( 1, 4 ), iwork, work, dr( 1, 1 ), nin, nout,
2431 $
WRITE( nout, fmt = 9980 )
'ZCKGSV', info
2433 ELSE IF(
lsamen( 3, c3,
'CSD' ) )
THEN
2441 $
CALL zerrgg(
'CSD', nout )
2442 CALL zckcsd( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2443 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), a( 1, 4 ),
2444 $ a( 1, 5 ), a( 1, 6 ), rwork, iwork, work,
2445 $ dr( 1, 1 ), nin, nout, info )
2447 $
WRITE( nout, fmt = 9980 )
'ZCKCSD', info
2449 ELSE IF(
lsamen( 3, c3,
'LSE' ) )
THEN
2457 $
CALL zerrgg(
'LSE', nout )
2458 CALL zcklse( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2459 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2460 $ work, dr( 1, 1 ), nin, nout, info )
2462 $
WRITE( nout, fmt = 9980 )
'ZCKLSE', info
2464 WRITE( nout, fmt = * )
2465 WRITE( nout, fmt = * )
2466 WRITE( nout, fmt = 9992 )c3
2468 IF( .NOT.( zgx .OR. zxv ) )
2471 WRITE( nout, fmt = 9994 )
2473 WRITE( nout, fmt = 9993 )s2 - s1
2475 DEALLOCATE (s, stat = allocatestatus)
2476 DEALLOCATE (a, stat = allocatestatus)
2477 DEALLOCATE (b, stat = allocatestatus)
2478 DEALLOCATE (c, stat = allocatestatus)
2479 DEALLOCATE (rwork, stat = allocatestatus)
2480 DEALLOCATE (work, stat = allocatestatus)
2482 9999
FORMAT( /
' Execution not attempted due to input errors' )
2483 9997
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4 )
2484 9996
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NS =', i4,
2485 $
', MAXB =', i4,
', IACC22 =', i4,
', NBCOL =', i4 )
2486 9995
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2488 9994
FORMAT( / /
' End of tests' )
2489 9993
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
2490 9992
FORMAT( 1x, a3,
': Unrecognized path name' )
2491 9991
FORMAT( / /
' *** Invalid integer value in column ', i2,
2492 $
' of input',
' line:', / a79 )
2493 9990
FORMAT( / / 1x, a3,
' routines were not tested' )
2494 9989
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be >=',
2496 9988
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be <=',
2498 9987
FORMAT(
' Tests of the Nonsymmetric Eigenvalue Problem routines' )
2499 9986
FORMAT(
' Tests of the Hermitian Eigenvalue Problem routines' )
2500 9985
FORMAT(
' Tests of the Singular Value Decomposition routines' )
2501 9984
FORMAT( /
' The following parameter values will be used:' )
2502 9983
FORMAT( 4x, a, 10i6, / 10x, 10i6 )
2503 9982
FORMAT( /
' Routines pass computational tests if test ratio is ',
2504 $
'less than', f8.2, / )
2505 9981
FORMAT(
' Relative machine ', a,
' is taken to be', d16.6 )
2506 9980
FORMAT(
' *** Error code from ', a,
' = ', i4 )
2507 9979
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2508 $ /
' ZGEEV (eigenvalues and eigevectors)' )
2509 9978
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2510 $ /
' ZGEES (Schur form)' )
2511 9977
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2512 $
' Driver', /
' ZGEEVX (eigenvalues, eigenvectors and',
2513 $
' condition numbers)' )
2514 9976
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2515 $
' Driver', /
' ZGEESX (Schur form and condition',
2517 9975
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2518 $
'Problem routines' )
2519 9974
FORMAT(
' Tests of ZHBTRD', /
' (reduction of a Hermitian band ',
2520 $
'matrix to real tridiagonal form)' )
2521 9973
FORMAT( / 1x, 71(
'-' ) )
2522 9972
FORMAT( /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1 )
2523 9971
FORMAT( /
' Tests of the Generalized Linear Regression Model ',
2525 9970
FORMAT( /
' Tests of the Generalized QR and RQ routines' )
2526 9969
FORMAT( /
' Tests of the Generalized Singular Value',
2527 $
' Decomposition routines' )
2528 9968
FORMAT( /
' Tests of the Linear Least Squares routines' )
2529 9967
FORMAT(
' Tests of ZGBBRD', /
' (reduction of a general band ',
2530 $
'matrix to real bidiagonal form)' )
2531 9966
FORMAT( / / 1x, a3,
': NRHS =', i4 )
2532 9965
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2533 $
'Problem Expert Driver ZGGESX' )
2534 9964
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2535 $
'Problem Driver ZGGES' )
2536 9963
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2537 $
'Problem Driver ZGGEV' )
2538 9962
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2539 $
'Problem Expert Driver ZGGEVX' )
2540 9961
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2542 $
', INWIN =', i4,
', INIBL =', i4,
', ISHFTS =', i4,
2544 9960
FORMAT( /
' Tests of the CS Decomposition routines' )
double precision function dlamch(CMACH)
DLAMCH
double precision function dsecnd()
DSECND Using ETIME
logical function lsamen(N, CA, CB)
LSAMEN
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
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 zchkgk(NIN, NOUT)
ZCHKGK
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 zckcsd(NM, MVAL, PVAL, QVAL, NMATS, ISEED, THRESH, MMAX, X, XF, U1, U2, V1T, V2T, THETA, IWORK, WORK, RWORK, NIN, NOUT, INFO)
ZCKCSD
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 zchkhb2stg(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, D1, D2, D3, U, LDU, WORK, LWORK, RWORK, RESULT, INFO)
ZCHKHBSTG
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 zchkgl(NIN, NOUT)
ZCHKGL
subroutine zchkbk(NIN, NOUT)
ZCHKBK
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 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 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 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 zcklse(NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
ZCKLSE
subroutine zerrbd(PATH, NUNIT)
ZERRBD
subroutine zerred(PATH, NUNIT)
ZERRED
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 zchkbl(NIN, NOUT)
ZCHKBL
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 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 zckglm(NN, NVAL, MVAL, PVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
ZCKGLM
subroutine zerrst(PATH, NUNIT)
ZERRST
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 zchkec(THRESH, TSTERR, NIN, NOUT)
ZCHKEC
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 zerrgg(PATH, NUNIT)
ZERRGG
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 zchkhb(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, U, LDU, WORK, LWORK, RWORK, RESULT, INFO)
ZCHKHB
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 zerrhs(PATH, NUNIT)
ZERRHS
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 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 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 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 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 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 ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
logical function lse(RI, RJ, LR)