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 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, n_threads
1076 REAL 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 REAL alpha( nmax ), beta( nmax ), dr( nmax, 12 ),
1089 COMPLEX dc( nmax, 6 ), taua( nmax ), taub( nmax ),
1093 INTEGER allocatestatus
1094 REAL,
DIMENSION(:),
ALLOCATABLE :: rwork, s
1095 COMPLEX,
DIMENSION(:),
ALLOCATABLE :: work
1096 COMPLEX,
DIMENSION(:,:),
ALLOCATABLE :: a, b, c
1119 INTEGER infot, maxb, nproc, nshift, nunit, seldim,
1123 LOGICAL selval( 20 )
1124 INTEGER iparms( 100 )
1125 REAL selwi( 20 ), selwr( 20 )
1128 COMMON / cenvir / nproc, nshift, maxb
1129 COMMON / claenv / iparms
1130 COMMON / infoc / infot, nunit, ok, lerr
1131 COMMON / srnamc / srnamt
1132 COMMON / sslct / selopt, seldim, selval, selwr, selwi
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,
'CHS' )
1172 sep =
lsamen( 3, path,
'SEP' ) .OR.
lsamen( 3, path,
'CST' ) .OR.
1173 $
lsamen( 3, path,
'CSG' ) .OR.
lsamen( 3, path,
'SE2' )
1174 svd =
lsamen( 3, path,
'SVD' ) .OR.
lsamen( 3, path,
'CBD' )
1175 cev =
lsamen( 3, path,
'CEV' )
1176 ces =
lsamen( 3, path,
'CES' )
1177 cvx =
lsamen( 3, path,
'CVX' )
1178 csx =
lsamen( 3, path,
'CSX' )
1179 cgg =
lsamen( 3, path,
'CGG' )
1180 cgs =
lsamen( 3, path,
'CGS' )
1181 cgx =
lsamen( 3, path,
'CGX' )
1182 cgv =
lsamen( 3, path,
'CGV' )
1183 cxv =
lsamen( 3, path,
'CXV' )
1184 chb =
lsamen( 3, path,
'CHB' )
1185 cbb =
lsamen( 3, path,
'CBB' )
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 cbl =
lsamen( 3, path,
'CBL' )
1192 cbk =
lsamen( 3, path,
'CBK' )
1193 cgl =
lsamen( 3, path,
'CGL' )
1194 cgk =
lsamen( 3, path,
'CGK' )
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,
'CEC' ) )
THEN
1266 READ( nin, fmt = * )thresh
1270 CALL cchkec( 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.( cgx .OR. cxv ) )
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. cbb .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.( cgx .OR. cxv ) )
THEN
1350 WRITE( nout, fmt = 9983 )
'N: ', ( nval( i ), i = 1, nn )
1352 WRITE( nout, fmt = 9983 )
'N: ', nn
1357 IF( chb .OR. cbb )
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( cev .OR. ces .OR. cvx .OR. csx )
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( cgs .OR. cgx .OR. cgv .OR. cxv )
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.chb .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. cgg )
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. cbb .OR. cgg )
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. cgg )
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 =
slamch(
'Underflow threshold' )
1689 WRITE( nout, fmt = 9981 )
'underflow', eps
1690 eps =
slamch(
'Overflow threshold' )
1691 WRITE( nout, fmt = 9981 )
'overflow ', eps
1692 eps =
slamch(
'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. cgg )
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.( cgx .OR. cxv ) )
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.( cev .OR. ces .OR. cvx .OR. csx .OR. cgv .OR.
1786 $ cgs ) .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,
'CHS' ) .OR.
lsamen( 3, c3,
'NEP' ) )
THEN
1819 ntypes = min( maxtyp, ntypes )
1820 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
1823 $
CALL cerrhs(
'CHSEQR', 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 cchkhs( 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 )
'CCHKHS', info
1853 ELSE IF(
lsamen( 3, c3,
'CST' ) .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 cerrst(
'CST', 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 cchkst2stg( 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 cchkst( 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 )
'CCHKST', info
1917 IF(
lsamen( 3, c3,
'SE2' ) )
THEN
1918 CALL cdrvst2stg( 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 cdrvst( 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 )
'CDRVST', info
1937 ELSE IF(
lsamen( 3, c3,
'CSG' ) )
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 cdrvsg2stg( 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 )
'CDRVSG', info
1981 ELSE IF(
lsamen( 3, c3,
'CBD' ) .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 cerrbd(
'CBD', nout )
2002 IF( tsterr .AND. tstdrv )
2003 $
CALL cerred(
'CBD', 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 cchkbd( 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 )
'CCHKBD', info
2028 $
CALL cdrvbd( 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,
'CEV' ) )
THEN
2044 ntypes = min( maxtyp, ntypes )
2045 IF( ntypes.LE.0 )
THEN
2046 WRITE( nout, fmt = 9990 )c3
2049 $
CALL cerred( c3, nout )
2050 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2051 CALL cdrvev( 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 )
'CGEEV', info
2059 WRITE( nout, fmt = 9973 )
2062 ELSE IF(
lsamen( 3, c3,
'CES' ) )
THEN
2070 ntypes = min( maxtyp, ntypes )
2071 IF( ntypes.LE.0 )
THEN
2072 WRITE( nout, fmt = 9990 )c3
2075 $
CALL cerred( c3, nout )
2076 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2077 CALL cdrves( 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 )
'CGEES', info
2085 WRITE( nout, fmt = 9973 )
2088 ELSE IF(
lsamen( 3, c3,
'CVX' ) )
THEN
2096 ntypes = min( maxtyp, ntypes )
2097 IF( ntypes.LT.0 )
THEN
2098 WRITE( nout, fmt = 9990 )c3
2101 $
CALL cerred( c3, nout )
2102 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2103 CALL cdrvvx( 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 )
'CGEEVX', info
2113 WRITE( nout, fmt = 9973 )
2116 ELSE IF(
lsamen( 3, c3,
'CSX' ) )
THEN
2124 ntypes = min( maxtyp, ntypes )
2125 IF( ntypes.LT.0 )
THEN
2126 WRITE( nout, fmt = 9990 )c3
2129 $
CALL cerred( c3, nout )
2130 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2131 CALL cdrvsx( 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 )
'CGEESX', info
2139 WRITE( nout, fmt = 9973 )
2142 ELSE IF(
lsamen( 3, c3,
'CGG' ) )
THEN
2156 ntypes = min( maxtyp, ntypes )
2157 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2159 IF( tstchk .AND. tsterr )
2160 $
CALL cerrgg( 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 cchkgg( 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 )
'CCHKGG', info
2192 ELSE IF(
lsamen( 3, c3,
'CGS' ) )
THEN
2200 ntypes = min( maxtyp, ntypes )
2201 IF( ntypes.LE.0 )
THEN
2202 WRITE( nout, fmt = 9990 )c3
2205 $
CALL cerrgg( c3, nout )
2206 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2207 CALL cdrges( 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 )
'CDRGES', info
2219 CALL cdrges3( nn, nval, maxtyp, dotype, iseed, thresh, nout,
2220 $ a( 1, 1 ), nmax, a( 1, 2 ), a( 1, 3 ),
2221 $ a( 1, 4 ), a( 1, 7 ), nmax, a( 1, 8 ),
2222 $ dc( 1, 1 ), dc( 1, 2 ), work, lwork, rwork,
2223 $ result, logwrk, info )
2226 $
WRITE( nout, fmt = 9980 )
'CDRGES3', info
2228 WRITE( nout, fmt = 9973 )
2242 WRITE( nout, fmt = 9990 )c3
2245 $
CALL cerrgg( c3, nout )
2246 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2248 CALL cdrgsx( 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 )
'CDRGSX', info
2256 WRITE( nout, fmt = 9973 )
2259 ELSE IF(
lsamen( 3, c3,
'CGV' ) )
THEN
2267 ntypes = min( maxtyp, ntypes )
2268 IF( ntypes.LE.0 )
THEN
2269 WRITE( nout, fmt = 9990 )c3
2272 $
CALL cerrgg( c3, nout )
2273 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2274 CALL cdrgev( 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 )
'CDRGEV', info
2286 CALL cdrgev3( 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 )
'CDRGEV3', info
2295 WRITE( nout, fmt = 9973 )
2308 WRITE( nout, fmt = 9990 )c3
2311 $
CALL cerrgg( c3, nout )
2312 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2313 CALL cdrgvx( 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 )
'CDRGVX', info
2324 WRITE( nout, fmt = 9973 )
2327 ELSE IF(
lsamen( 3, c3,
'CHB' ) )
THEN
2334 ntypes = min( maxtyp, ntypes )
2335 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2337 #if defined(_OPENMP)
2338 n_threads = omp_get_num_threads()
2339 CALL omp_set_num_threads(1)
2341 CALL cerrst(
'CHB', nout )
2342 #if defined(_OPENMP)
2343 CALL omp_set_num_threads(n_threads)
2350 CALL cchkhb2stg( nn, nval, nk, kval, maxtyp, dotype, iseed,
2351 $ thresh, nout, a( 1, 1 ), nmax, dr( 1, 1 ),
2352 $ dr( 1, 2 ), dr( 1, 3 ), dr( 1, 4 ), dr( 1, 5 ),
2353 $ a( 1, 2 ), nmax, work, lwork, rwork, result,
2356 $
WRITE( nout, fmt = 9980 )
'CCHKHB', info
2358 ELSE IF(
lsamen( 3, c3,
'CBB' ) )
THEN
2365 ntypes = min( maxtyp, ntypes )
2366 CALL alareq( c3, ntypes, dotype, maxtyp, nin, nout )
2367 DO 370 i = 1, nparms
2370 IF( newsd.EQ.0 )
THEN
2372 iseed( k ) = ioldsd( k )
2375 WRITE( nout, fmt = 9966 )c3, nrhs
2376 CALL cchkbb( nn, mval, nval, nk, kval, maxtyp, dotype, nrhs,
2377 $ iseed, thresh, nout, a( 1, 1 ), nmax,
2378 $ a( 1, 2 ), 2*nmax, dr( 1, 1 ), dr( 1, 2 ),
2379 $ a( 1, 4 ), nmax, a( 1, 5 ), nmax, a( 1, 6 ),
2380 $ nmax, a( 1, 7 ), work, lwork, rwork, result,
2383 $
WRITE( nout, fmt = 9980 )
'CCHKBB', info
2386 ELSE IF(
lsamen( 3, c3,
'GLM' ) )
THEN
2394 $
CALL cerrgg(
'GLM', nout )
2395 CALL cckglm( nn, nval, mval, pval, ntypes, iseed, thresh, nmax,
2396 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2397 $ work, dr( 1, 1 ), nin, nout, info )
2399 $
WRITE( nout, fmt = 9980 )
'CCKGLM', info
2401 ELSE IF(
lsamen( 3, c3,
'GQR' ) )
THEN
2409 $
CALL cerrgg(
'GQR', nout )
2410 CALL cckgqr( nn, mval, nn, pval, nn, nval, ntypes, iseed,
2411 $ thresh, nmax, a( 1, 1 ), a( 1, 2 ), a( 1, 3 ),
2412 $ a( 1, 4 ), taua, b( 1, 1 ), b( 1, 2 ), b( 1, 3 ),
2413 $ b( 1, 4 ), b( 1, 5 ), taub, work, dr( 1, 1 ), nin,
2416 $
WRITE( nout, fmt = 9980 )
'CCKGQR', info
2418 ELSE IF(
lsamen( 3, c3,
'GSV' ) )
THEN
2426 $
CALL cerrgg(
'GSV', nout )
2427 CALL cckgsv( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2428 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ),
2429 $ a( 1, 3 ), b( 1, 3 ), a( 1, 4 ), alpha, beta,
2430 $ b( 1, 4 ), iwork, work, dr( 1, 1 ), nin, nout,
2433 $
WRITE( nout, fmt = 9980 )
'CCKGSV', info
2435 ELSE IF(
lsamen( 3, c3,
'CSD' ) )
THEN
2443 $
CALL cerrgg(
'CSD', nout )
2444 CALL cckcsd( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2445 $ a( 1, 1 ), a( 1, 2 ), a( 1, 3 ), a( 1, 4 ),
2446 $ a( 1, 5 ), a( 1, 6 ), rwork, iwork, work,
2447 $ dr( 1, 1 ), nin, nout, info )
2449 $
WRITE( nout, fmt = 9980 )
'CCKCSD', info
2451 ELSE IF(
lsamen( 3, c3,
'LSE' ) )
THEN
2459 $
CALL cerrgg(
'LSE', nout )
2460 CALL ccklse( nn, mval, pval, nval, ntypes, iseed, thresh, nmax,
2461 $ a( 1, 1 ), a( 1, 2 ), b( 1, 1 ), b( 1, 2 ), x,
2462 $ work, dr( 1, 1 ), nin, nout, info )
2464 $
WRITE( nout, fmt = 9980 )
'CCKLSE', info
2466 WRITE( nout, fmt = * )
2467 WRITE( nout, fmt = * )
2468 WRITE( nout, fmt = 9992 )c3
2470 IF( .NOT.( cgx .OR. cxv ) )
2473 WRITE( nout, fmt = 9994 )
2475 WRITE( nout, fmt = 9993 )s2 - s1
2477 DEALLOCATE (s, stat = allocatestatus)
2478 DEALLOCATE (a, stat = allocatestatus)
2479 DEALLOCATE (b, stat = allocatestatus)
2480 DEALLOCATE (c, stat = allocatestatus)
2481 DEALLOCATE (rwork, stat = allocatestatus)
2482 DEALLOCATE (work, stat = allocatestatus)
2484 9999
FORMAT( /
' Execution not attempted due to input errors' )
2485 9997
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4 )
2486 9996
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NS =', i4,
2487 $
', MAXB =', i4,
', IACC22 =', i4,
', NBCOL =', i4 )
2488 9995
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2490 9994
FORMAT( / /
' End of tests' )
2491 9993
FORMAT(
' Total time used = ', f12.2,
' seconds', / )
2492 9992
FORMAT( 1x, a3,
': Unrecognized path name' )
2493 9991
FORMAT( / /
' *** Invalid integer value in column ', i2,
2494 $
' of input',
' line:', / a79 )
2495 9990
FORMAT( / / 1x, a3,
' routines were not tested' )
2496 9989
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be >=',
2498 9988
FORMAT(
' Invalid input value: ', a,
'=', i6,
'; must be <=',
2500 9987
FORMAT(
' Tests of the Nonsymmetric Eigenvalue Problem routines' )
2501 9986
FORMAT(
' Tests of the Hermitian Eigenvalue Problem routines' )
2502 9985
FORMAT(
' Tests of the Singular Value Decomposition routines' )
2503 9984
FORMAT( /
' The following parameter values will be used:' )
2504 9983
FORMAT( 4x, a, 10i6, / 10x, 10i6 )
2505 9982
FORMAT( /
' Routines pass computational tests if test ratio is ',
2506 $
'less than', f8.2, / )
2507 9981
FORMAT(
' Relative machine ', a,
' is taken to be', e16.6 )
2508 9980
FORMAT(
' *** Error code from ', a,
' = ', i4 )
2509 9979
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2510 $ /
' CGEEV (eigenvalues and eigevectors)' )
2511 9978
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Driver',
2512 $ /
' CGEES (Schur form)' )
2513 9977
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2514 $
' Driver', /
' CGEEVX (eigenvalues, eigenvectors and',
2515 $
' condition numbers)' )
2516 9976
FORMAT( /
' Tests of the Nonsymmetric Eigenvalue Problem Expert',
2517 $
' Driver', /
' CGEESX (Schur form and condition',
2519 9975
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2520 $
'Problem routines' )
2521 9974
FORMAT(
' Tests of CHBTRD', /
' (reduction of a Hermitian band ',
2522 $
'matrix to real tridiagonal form)' )
2523 9973
FORMAT( / 1x, 71(
'-' ) )
2524 9972
FORMAT( /
' LAPACK VERSION ', i1,
'.', i1,
'.', i1 )
2525 9971
FORMAT( /
' Tests of the Generalized Linear Regression Model ',
2527 9970
FORMAT( /
' Tests of the Generalized QR and RQ routines' )
2528 9969
FORMAT( /
' Tests of the Generalized Singular Value',
2529 $
' Decomposition routines' )
2530 9968
FORMAT( /
' Tests of the Linear Least Squares routines' )
2531 9967
FORMAT(
' Tests of CGBBRD', /
' (reduction of a general band ',
2532 $
'matrix to real bidiagonal form)' )
2533 9966
FORMAT( / / 1x, a3,
': NRHS =', i4 )
2534 9965
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2535 $
'Problem Expert Driver CGGESX' )
2536 9964
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2537 $
'Problem Driver CGGES' )
2538 9963
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2539 $
'Problem Driver CGGEV' )
2540 9962
FORMAT( /
' Tests of the Generalized Nonsymmetric Eigenvalue ',
2541 $
'Problem Expert Driver CGGEVX' )
2542 9961
FORMAT( / / 1x, a3,
': NB =', i4,
', NBMIN =', i4,
', NX =', i4,
2544 $
', INWIN =', i4,
', INIBL =', i4,
', ISHFTS =', i4,
2546 9960
FORMAT( /
' Tests of the CS Decomposition routines' )
logical function lsamen(N, CA, CB)
LSAMEN
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
subroutine xlaenv(ISPEC, NVALUE)
XLAENV
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 cckglm(NN, NVAL, MVAL, PVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
CCKGLM
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 cchkbl(NIN, NOUT)
CCHKBL
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 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 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 cchkec(THRESH, TSTERR, NIN, NOUT)
CCHKEC
subroutine cchkgl(NIN, NOUT)
CCHKGL
subroutine cchkgk(NIN, NOUT)
CCHKGK
subroutine cchkhb(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, U, LDU, WORK, LWORK, RWORK, RESULT, INFO)
CCHKHB
subroutine cerred(PATH, NUNIT)
CERRED
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 cerrbd(PATH, NUNIT)
CERRBD
subroutine cerrgg(PATH, NUNIT)
CERRGG
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 ccklse(NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
CCKLSE
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 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 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 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 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 cckcsd(NM, MVAL, PVAL, QVAL, NMATS, ISEED, THRESH, MMAX, X, XF, U1, U2, V1T, V2T, THETA, IWORK, WORK, RWORK, NIN, NOUT, INFO)
CCKCSD
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 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 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 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 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 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 cerrhs(PATH, NUNIT)
CERRHS
subroutine cchkbk(NIN, NOUT)
CCHKBK
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 cchkhb2stg(NSIZES, NN, NWDTHS, KK, NTYPES, DOTYPE, ISEED, THRESH, NOUNIT, A, LDA, SD, SE, D1, D2, D3, U, LDU, WORK, LWORK, RWORK, RESULT, INFO)
CCHKHBSTG
subroutine cerrst(PATH, NUNIT)
CERRST
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 ilaver(VERS_MAJOR, VERS_MINOR, VERS_PATCH)
ILAVER returns the LAPACK version.
logical function lse(RI, RJ, LR)
real function second()
SECOND Using ETIME
real function slamch(CMACH)
SLAMCH