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 cbb, cbk, cbl, ces, cev, cgg, cgk, cgl, cgs,
1065 $ cgv, cgx, chb, csd, csx, cvx, cxv, fatal, glm,
1066 $ gqr, gsv,
lse, nep, sep, svd, tstchk, tstdif,
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 REAL 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 REAL alpha( nmax ), beta( nmax ), dr( nmax, 12 ),
1090 COMPLEX dc( nmax, 6 ), taua( nmax ), taub( nmax ),
1094 INTEGER allocatestatus
1095 REAL,
DIMENSION(:),
ALLOCATABLE :: rwork, s
1096 COMPLEX,
DIMENSION(:),
ALLOCATABLE :: work
1097 COMPLEX,
DIMENSION(:,:),
ALLOCATABLE :: a, b, c
1120 INTEGER infot, maxb, nproc, nshift, nunit, seldim,
1124 LOGICAL selval( 20 )
1125 INTEGER iparms( 100 )
1126 REAL selwi( 20 ), selwr( 20 )
1129 COMMON / cenvir / nproc, nshift, maxb
1130 COMMON / claenv / iparms
1131 COMMON / infoc / infot, nunit, ok, lerr
1132 COMMON / srnamc / srnamt
1133 COMMON / sslct / selopt, seldim, selval, selwr, selwi
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,
'CHS' )
1173 sep =
lsamen( 3, path,
'SEP' ) .OR.
lsamen( 3, path,
'CST' ) .OR.
1174 $
lsamen( 3, path,
'CSG' ) .OR.
lsamen( 3, path,
'SE2' )
1175 svd =
lsamen( 3, path,
'SVD' ) .OR.
lsamen( 3, path,
'CBD' )
1176 cev =
lsamen( 3, path,
'CEV' )
1177 ces =
lsamen( 3, path,
'CES' )
1178 cvx =
lsamen( 3, path,
'CVX' )
1179 csx =
lsamen( 3, path,
'CSX' )
1180 cgg =
lsamen( 3, path,
'CGG' )
1181 cgs =
lsamen( 3, path,
'CGS' )
1182 cgx =
lsamen( 3, path,
'CGX' )
1183 cgv =
lsamen( 3, path,
'CGV' )
1184 cxv =
lsamen( 3, path,
'CXV' )
1185 chb =
lsamen( 3, path,
'CHB' )
1186 cbb =
lsamen( 3, path,
'CBB' )
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 cbl =
lsamen( 3, path,
'CBL' )
1193 cbk =
lsamen( 3, path,
'CBK' )
1194 cgl =
lsamen( 3, path,
'CGL' )
1195 cgk =
lsamen( 3, path,
'CGK' )
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,
'CEC' ) )
THEN
1267 READ( nin, fmt = * )thresh
1271 CALL cchkec( 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.( cgx .OR. cxv ) )
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. cbb .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.( cgx .OR. cxv ) )
THEN
1351 WRITE( nout, fmt = 9983 )
'N: ', ( nval( i ), i = 1, nn )
1353 WRITE( nout, fmt = 9983 )
'N: ', nn
1358 IF( chb .OR. cbb )
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( cev .OR. ces .OR. cvx .OR. csx )
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( cgs .OR. cgx .OR. cgv .OR. cxv )
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.chb .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. cgg )
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. cbb .OR. cgg )
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. cgg )
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 =
slamch(
'Underflow threshold' )
1690 WRITE( nout, fmt = 9981 )
'underflow', eps
1691 eps =
slamch(
'Overflow threshold' )
1692 WRITE( nout, fmt = 9981 )
'overflow ', eps
1693 eps =
slamch(
'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. cgg )
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.( cgx .OR. cxv ) )
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.( cev .OR. ces .OR. cvx .OR. csx .OR. cgv .OR.
1787 $ cgs ) .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,
'CHS' ) .OR.
lsamen( 3, c3,
'NEP' ) )
THEN
1820 ntypes = min( maxtyp, ntypes )
1821 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1824 $
CALL cerrhs(
'CHSEQR', 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 cchkhs( 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 )
'CCHKHS', info
1854 ELSE IF(
lsamen( 3, c3,
'CST' ) .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 cerrst(
'CST', 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 cchkst2stg( 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 cchkst( 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 )
'CCHKST', info
1919 IF(
lsamen( 3, c3,
'SE2' ) )
THEN
1920 CALL cdrvst2stg( 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 cdrvst( 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 )
'CDRVST', info
1939 ELSE IF(
lsamen( 3, c3,
'CSG' ) )
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 cdrvsg2stg( 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 )
'CDRVSG', info
1983 ELSE IF(
lsamen( 3, c3,
'CBD' ) .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 cerrbd(
'CBD', nout )
2004 IF( tsterr .AND. tstdrv )
2005 $
CALL cerred(
'CBD', 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 cchkbd( 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 )
'CCHKBD', info
2030 $
CALL cdrvbd( 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,
'CEV' ) )
THEN
2046 ntypes = min( maxtyp, ntypes )
2047 IF( ntypes.LE.0 )
THEN
2048 WRITE( nout, fmt = 9990 )c3
2051 $
CALL cerred( c3, nout )
2052 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2053 CALL cdrvev( 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 )
'CGEEV', info
2061 WRITE( nout, fmt = 9973 )
2064 ELSE IF(
lsamen( 3, c3,
'CES' ) )
THEN
2072 ntypes = min( maxtyp, ntypes )
2073 IF( ntypes.LE.0 )
THEN
2074 WRITE( nout, fmt = 9990 )c3
2077 $
CALL cerred( c3, nout )
2078 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2079 CALL cdrves( 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 )
'CGEES', info
2087 WRITE( nout, fmt = 9973 )
2090 ELSE IF(
lsamen( 3, c3,
'CVX' ) )
THEN
2098 ntypes = min( maxtyp, ntypes )
2099 IF( ntypes.LT.0 )
THEN
2100 WRITE( nout, fmt = 9990 )c3
2103 $
CALL cerred( c3, nout )
2104 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2105 CALL cdrvvx( 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 )
'CGEEVX', info
2115 WRITE( nout, fmt = 9973 )
2118 ELSE IF(
lsamen( 3, c3,
'CSX' ) )
THEN
2126 ntypes = min( maxtyp, ntypes )
2127 IF( ntypes.LT.0 )
THEN
2128 WRITE( nout, fmt = 9990 )c3
2131 $
CALL cerred( c3, nout )
2132 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2133 CALL cdrvsx( 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 )
'CGEESX', info
2141 WRITE( nout, fmt = 9973 )
2144 ELSE IF(
lsamen( 3, c3,
'CGG' ) )
THEN
2158 ntypes = min( maxtyp, ntypes )
2159 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2161 IF( tstchk .AND. tsterr )
2162 $
CALL cerrgg( 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 cchkgg( 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 )
'CCHKGG', info
2194 ELSE IF(
lsamen( 3, c3,
'CGS' ) )
THEN
2202 ntypes = min( maxtyp, ntypes )
2203 IF( ntypes.LE.0 )
THEN
2204 WRITE( nout, fmt = 9990 )c3
2207 $
CALL cerrgg( c3, nout )
2208 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2209 CALL cdrges( 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 )
'CDRGES', info
2221 CALL cdrges3( 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 $ dc( 1, 1 ), dc( 1, 2 ), work, lwork, rwork,
2225 $ result, logwrk, info )
2228 $
WRITE( nout, fmt = 9980 )
'CDRGES3', info
2230 WRITE( nout, fmt = 9973 )
2244 WRITE( nout, fmt = 9990 )c3
2247 $
CALL cerrgg( c3, nout )
2248 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2250 CALL cdrgsx( nn, ncmax, thresh, nin, nout, a( 1, 1 ), nmax,
2251 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), a( 1, 5 ),
2252 $ a( 1, 6 ), dc( 1, 1 ), dc( 1, 2 ), c,
2253 $ ncmax*ncmax, s, work, lwork, rwork, iwork,
2254 $ liwork, logwrk, info )
2256 $
WRITE( nout, fmt = 9980 )
'CDRGSX', info
2258 WRITE( nout, fmt = 9973 )
2261 ELSE IF(
lsamen( 3, c3,
'CGV' ) )
THEN
2269 ntypes = min( maxtyp, ntypes )
2270 IF( ntypes.LE.0 )
THEN
2271 WRITE( nout, fmt = 9990 )c3
2274 $
CALL cerrgg( c3, nout )
2275 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2276 CALL cdrgev( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2277 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2278 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2279 $ a( 1, 9 ), nmax, dc( 1, 1 ), dc( 1, 2 ),
2280 $ dc( 1, 3 ), dc( 1, 4 ), work, lwork, rwork,
2283 $
WRITE( nout, fmt = 9980 )
'CDRGEV', info
2288 CALL cdrgev3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2289 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2290 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2291 $ a( 1, 9 ), nmax, dc( 1, 1 ), dc( 1, 2 ),
2292 $ dc( 1, 3 ), dc( 1, 4 ), work, lwork, rwork,
2295 $
WRITE( nout, fmt = 9980 )
'CDRGEV3', info
2297 WRITE( nout, fmt = 9973 )
2310 WRITE( nout, fmt = 9990 )c3
2313 $
CALL cerrgg( c3, nout )
2314 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2315 CALL cdrgvx( nn, thresh, nin, nout, a( 1, 1 ), nmax,
2316 $ a( 1, 2 ), a( 1, 3 ), a( 1, 4 ), dc( 1, 1 ),
2317 $ dc( 1, 2 ), a( 1, 5 ), a( 1, 6 ), iwork( 1 ),
2318 $ iwork( 2 ), dr( 1, 1 ), dr( 1, 2 ), dr( 1, 3 ),
2319 $ dr( 1, 4 ), dr( 1, 5 ), dr( 1, 6 ), work,
2320 $ lwork, rwork, iwork( 3 ), liwork-2, result,
2324 $
WRITE( nout, fmt = 9980 )
'CDRGVX', info
2326 WRITE( nout, fmt = 9973 )
2329 ELSE IF(
lsamen( 3, c3,
'CHB' ) )
THEN
2336 ntypes = min( maxtyp, ntypes )
2337 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2340 n_threads = omp_get_max_threads()
2342 CALL omp_set_num_threads(one_thread)
2344 CALL cerrst(
'CHB', nout )
2346 CALL omp_set_num_threads(n_threads)
2353 CALL cchkhb2stg( nn, nval, nk, kval, maxtyp, dotype, iseed,
2354 $ thresh, nout, a( 1, 1 ), nmax, dr( 1, 1 ),
2355 $ dr( 1, 2 ), dr( 1, 3 ), dr( 1, 4 ), dr( 1, 5 ),
2356 $ a( 1, 2 ), nmax, work, lwork, rwork, result,
2359 $
WRITE( nout, fmt = 9980 )
'CCHKHB', info
2361 ELSE IF(
lsamen( 3, c3,
'CBB' ) )
THEN
2368 ntypes = min( maxtyp, ntypes )
2369 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2370 DO 370 i = 1, nparms
2373 IF( newsd.EQ.0 )
THEN
2375 iseed( k ) = ioldsd( k )
2378 WRITE( nout, fmt = 9966 )c3, nrhs
2379 CALL cchkbb( nn, mval, nval, nk, kval, maxtyp, dotype, nrhs,
2380 $ iseed, thresh, nout, a( 1, 1 ), nmax,
2381 $ a( 1, 2 ), 2*nmax, dr( 1, 1 ), dr( 1, 2 ),
2382 $ a( 1, 4 ), nmax, a( 1, 5 ), nmax, a( 1, 6 ),
2383 $ nmax, a( 1, 7 ), work, lwork, rwork, result,
2386 $
WRITE( nout, fmt = 9980 )
'CCHKBB', info
2389 ELSE IF(
lsamen( 3, c3,
'GLM' ) )
THEN
2397 $
CALL cerrgg(
'GLM', nout )
2398 CALL cckglm( nn, nval, mval, pval, ntypes, iseed, thresh, nmax,
2399 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2400 $ work, dr( 1, 1 ), nin, nout, info )
2402 $
WRITE( nout, fmt = 9980 )
'CCKGLM', info
2404 ELSE IF(
lsamen( 3, c3,
'GQR' ) )
THEN
2412 $
CALL cerrgg(
'GQR', nout )
2413 CALL cckgqr( nn, mval, nn, pval, nn, nval, ntypes, iseed,
2414 $ thresh, nmax, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
2415 $ a( 1, 4 ), taua, b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
2416 $ b( 1, 4 ), b( 1, 5 ), taub, work, dr( 1, 1 ), nin,
2419 $
WRITE( nout, fmt = 9980 )
'CCKGQR', info
2421 ELSE IF(
lsamen( 3, c3,
'GSV' ) )
THEN
2429 $
CALL cerrgg(
'GSV', nout )
2430 CALL cckgsv( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2431 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
2432 $ a( 1, 3 ), b( 1, 3 ), a( 1, 4 ), alpha, beta,
2433 $ b( 1, 4 ), iwork, work, dr( 1, 1 ), nin, nout,
2436 $
WRITE( nout, fmt = 9980 )
'CCKGSV', info
2438 ELSE IF(
lsamen( 3, c3,
'CSD' ) )
THEN
2446 $
CALL cerrgg(
'CSD', nout )
2447 CALL cckcsd( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2448 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), a( 1, 4 ),
2449 $ a( 1, 5 ), a( 1, 6 ), rwork, iwork, work,
2450 $ dr( 1, 1 ), nin, nout, info )
2452 $
WRITE( nout, fmt = 9980 )
'CCKCSD', info
2454 ELSE IF(
lsamen( 3, c3,
'LSE' ) )
THEN
2462 $
CALL cerrgg(
'LSE', nout )
2463 CALL ccklse( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2464 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2465 $ work, dr( 1, 1 ), nin, nout, info )
2467 $
WRITE( nout, fmt = 9980 )
'CCKLSE', info
2469 WRITE( nout, fmt = * )
2470 WRITE( nout, fmt = * )
2471 WRITE( nout, fmt = 9992 )c3
2473 IF( .NOT.( cgx .OR. cxv ) )
2476 WRITE( nout, fmt = 9994 )
2478 WRITE( nout, fmt = 9993 )s2 - s1
2480 DEALLOCATE (s, stat = allocatestatus)
2481 DEALLOCATE (a, stat = allocatestatus)
2482 DEALLOCATE (b, stat = allocatestatus)
2483 DEALLOCATE (c, stat = allocatestatus)
2484 DEALLOCATE (rwork, stat = allocatestatus)
2485 DEALLOCATE (work, stat = allocatestatus)
2487 9999
FORMAT( /
' Execution not attempted due to input errors' )
2488 9997
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4 )
2489 9996
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NS =', i4,
2490 $
', MAXB =', i4,
', IACC22 =', i4,
', NBCOL =', i4 )
2491 9995
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2493 9994
FORMAT( / /
' End of tests' )
2494 9993
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
2495 9992
FORMAT( 1x, a3,
': Unrecognized path name' )
2496 9991
FORMAT( / /
' *** Invalid integer value in column ', i2,
2497 $
' of input',
' line:', / a79 )
2498 9990
FORMAT( / / 1x, a3,
' routines were not tested' )
2499 9989
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be >=',
2501 9988
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be <=',
2503 9987
FORMAT(
' Tests of the Nonsymmetric Eigenvalue Problem routines' )
2504 9986
FORMAT(
' Tests of the Hermitian Eigenvalue Problem routines' )
2505 9985
FORMAT(
' Tests of the Singular Value Decomposition routines' )
2506 9984
FORMAT( /
' The following parameter values will be used:' )
2507 9983
FORMAT( 4x, a, 10i6, / 10x, 10i6 )
2508 9982
FORMAT( /
' Routines pass computational tests if test ratio is ',
2509 $
'less than', f8.2, / )
2510 9981
FORMAT(
' Relative machine ', a,
' is taken to be', e16.6 )
2511 9980
FORMAT(
' *** Error code from ', a,
' = ', i4 )
2512 9979
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2513 $ /
' CGEEV (eigenvalues and eigevectors)' )
2514 9978
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2515 $ /
' CGEES (Schur form)' )
2516 9977
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2517 $
' Driver', /
' CGEEVX (eigenvalues, eigenvectors and',
2518 $
' condition numbers)' )
2519 9976
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2520 $
' Driver', /
' CGEESX (Schur form and condition',
2522 9975
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2523 $
'Problem routines' )
2524 9974
FORMAT(
' Tests of CHBTRD', /
' (reduction of a Hermitian band ',
2525 $
'matrix to real tridiagonal form)' )
2526 9973
FORMAT( / 1x, 71(
'-' ) )
2527 9972
FORMAT( /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1 )
2528 9971
FORMAT( /
' Tests of the Generalized Linear Regression Model ',
2530 9970
FORMAT( /
' Tests of the Generalized QR and RQ routines' )
2531 9969
FORMAT( /
' Tests of the Generalized Singular Value',
2532 $
' Decomposition routines' )
2533 9968
FORMAT( /
' Tests of the Linear Least Squares routines' )
2534 9967
FORMAT(
' Tests of CGBBRD', /
' (reduction of a general band ',
2535 $
'matrix to real bidiagonal form)' )
2536 9966
FORMAT( / / 1x, a3,
': NRHS =', i4 )
2537 9965
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2538 $
'Problem Expert Driver CGGESX' )
2539 9964
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2540 $
'Problem Driver CGGES' )
2541 9963
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2542 $
'Problem Driver CGGEV' )
2543 9962
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2544 $
'Problem Expert Driver CGGEVX' )
2545 9961
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2547 $
', INWIN =', i4,
', INIBL =', i4,
', ISHFTS =', i4,
2549 9960
FORMAT( /
' Tests of the CS Decomposition routines' )
subroutine alareq(path, nmats, dotype, ntypes, nin, nout)
ALAREQ
subroutine xlaenv(ispec, nvalue)
XLAENV
subroutine cchkbb(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)
CCHKBB
subroutine cchkbd(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)
CCHKBD
subroutine cchkbk(nin, nout)
CCHKBK
subroutine cchkbl(nin, nout)
CCHKBL
subroutine cchkec(thresh, tsterr, nin, nout)
CCHKEC
subroutine cchkgg(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)
CCHKGG
subroutine cchkgk(nin, nout)
CCHKGK
subroutine cchkgl(nin, nout)
CCHKGL
subroutine cchkhb2stg(nsizes, nn, nwdths, kk, ntypes, dotype, iseed, thresh, nounit, a, lda, sd, se, d1, d2, d3, u, ldu, work, lwork, rwork, result, info)
CCHKHB2STG
subroutine cchkhb(nsizes, nn, nwdths, kk, ntypes, dotype, iseed, thresh, nounit, a, lda, sd, se, u, ldu, work, lwork, rwork, result, info)
CCHKHB
subroutine cchkhs(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)
CCHKHS
subroutine cchkst2stg(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)
CCHKST2STG
subroutine cchkst(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)
CCHKST
subroutine cckcsd(nm, mval, pval, qval, nmats, iseed, thresh, mmax, x, xf, u1, u2, v1t, v2t, theta, iwork, work, rwork, nin, nout, info)
CCKCSD
subroutine cckglm(nn, nval, mval, pval, nmats, iseed, thresh, nmax, a, af, b, bf, x, work, rwork, nin, nout, info)
CCKGLM
subroutine cckgqr(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)
CCKGQR
subroutine cckgsv(nm, mval, pval, nval, nmats, iseed, thresh, nmax, a, af, b, bf, u, v, q, alpha, beta, r, iwork, work, rwork, nin, nout, info)
CCKGSV
subroutine ccklse(nn, mval, pval, nval, nmats, iseed, thresh, nmax, a, af, b, bf, x, work, rwork, nin, nout, info)
CCKLSE
subroutine cdrges3(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, s, t, q, ldq, z, alpha, beta, work, lwork, rwork, result, bwork, info)
CDRGES3
subroutine cdrges(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, b, s, t, q, ldq, z, alpha, beta, work, lwork, rwork, result, bwork, info)
CDRGES
subroutine cdrgev3(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)
CDRGEV3
subroutine cdrgev(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)
CDRGEV
subroutine cdrgsx(nsize, ncmax, thresh, nin, nout, a, lda, b, ai, bi, z, q, alpha, beta, c, ldc, s, work, lwork, rwork, iwork, liwork, bwork, info)
CDRGSX
subroutine cdrgvx(nsize, thresh, nin, nout, a, lda, b, ai, bi, alpha, beta, vl, vr, ilo, ihi, lscale, rscale, s, stru, dif, diftru, work, lwork, rwork, iwork, liwork, result, bwork, info)
CDRGVX
subroutine cdrvbd(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)
CDRVBD
subroutine cdrves(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, h, ht, w, wt, vs, ldvs, result, work, nwork, rwork, iwork, bwork, info)
CDRVES
subroutine cdrvev(nsizes, nn, ntypes, dotype, iseed, thresh, nounit, a, lda, h, w, w1, vl, ldvl, vr, ldvr, lre, ldlre, result, work, nwork, rwork, iwork, info)
CDRVEV
subroutine cdrvsg2stg(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)
CDRVSG2STG
subroutine cdrvsg(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)
CDRVSG
subroutine cdrvst2stg(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)
CDRVST2STG
subroutine cdrvst(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)
CDRVST
subroutine cdrvsx(nsizes, nn, ntypes, dotype, iseed, thresh, niunit, nounit, a, lda, h, ht, w, wt, wtmp, vs, ldvs, vs1, result, work, lwork, rwork, bwork, info)
CDRVSX
subroutine cdrvvx(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)
CDRVVX
subroutine cerrbd(path, nunit)
CERRBD
subroutine cerred(path, nunit)
CERRED
subroutine cerrgg(path, nunit)
CERRGG
subroutine cerrhs(path, nunit)
CERRHS
subroutine cerrst(path, nunit)
CERRST
subroutine ilaver(vers_major, vers_minor, vers_patch)
ILAVER returns the LAPACK version.
real function slamch(cmach)
SLAMCH
logical function lsamen(n, ca, cb)
LSAMEN
real function second()
SECOND Using ETIME
logical function lse(ri, rj, lr)