956 $ TRNAVAL, TRNBVAL, UPLOVAL, MVAL,
957 $ NVAL, KVAL, MAVAL, NAVAL, IMBAVAL,
958 $ MBAVAL, INBAVAL, NBAVAL, RSCAVAL,
959 $ CSCAVAL, IAVAL, JAVAL, MBVAL, NBVAL,
960 $ IMBBVAL, MBBVAL, INBBVAL, NBBVAL,
961 $ RSCBVAL, CSCBVAL, IBVAL, JBVAL,
962 $ MCVAL, NCVAL, IMBCVAL, MBCVAL,
963 $ INBCVAL, NBCVAL, RSCCVAL, CSCCVAL,
964 $ ICVAL, JCVAL, LDVAL, NGRIDS, PVAL,
965 $ LDPVAL, QVAL, LDQVAL, NBLOG, LTEST,
966 $ IAM, NPROCS, ALPHA, BETA, WORK )
974 INTEGER IAM, , LDQVAL, LDVAL, NBLOG, NGRIDS,
976 COMPLEX*16 ALPHA, BETA
979 CHARACTER*( * ) SUMMRY
980 CHARACTER*1 DIAGVAL( LDVAL ), SIDEVAL( LDVAL ),
981 $ TRNAVAL( LDVAL ), TRNBVAL( LDVAL ),
984 INTEGER CSCAVAL( LDVAL ), CSCBVAL( LDVAL ),
985 $ csccval( ldval ), iaval( ldval ),
986 $ ibval( ldval ), icval( ldval ),
987 $ imbaval( ldval ), imbbval( ldval ),
988 $ imbcval( ldval ), inbaval( ldval ),
989 $ inbbval( ldval ), inbcval( ldval ),
990 $ javal( ldval ), jbval( ldval ), jcval( ldval ),
991 $ kval( ldval ), maval( ldval ), mbaval( ldval ),
992 $ mbbval( ldval ), mbcval( ldval ),
993 $ mbval( ldval ), mcval( ldval ), mval( ldval ),
994 $ naval( ldval ), nbaval( ldval ),
995 $ nbbval( ldval ), nbcval( ldval ),
996 $ nbval( ldval ), ncval( ldval ), nval( ldval ),
997 $ pval( ldpval ), qval( ldqval ),
998 $ rscaval( ldval ), rscbval( ldval ),
999 $ rsccval( ldval ), work( * )
1271 PARAMETER ( NIN = 11, nsubs = 11 )
1279 CHARACTER*79 USRINFO
1287 INTRINSIC char, ichar,
max,
min
1290 CHARACTER*7 SNAMES( NSUBS )
1291 COMMON /SNAMEC/SNAMES
1302 OPEN( nin, file=
'PZBLAS3TIM.dat', status=
'OLD' )
1303 READ( nin, fmt = * ) summry
1308 READ( nin, fmt = 9999 ) usrinfo
1312 READ( nin, fmt = * ) summry
1313 READ( nin, fmt = * ) nout
1314 IF( nout.NE.0 .AND. nout.NE.6 )
1315 $
OPEN( nout, file = summry, status =
'UNKNOWN' )
1321 READ( nin, fmt = * ) nblog
1327 READ( nin, fmt = * ) ngrids
1328 IF( ngrids.LT.1 .OR. ngrids.GT.ldpval )
THEN
1329 WRITE( nout, fmt = 9998 )
'Grids', ldpval
1331 ELSE IF( ngrids.GT.ldqval )
THEN
1332 WRITE( nout, fmt = 9998 )
'Grids', ldqval
1338 READ( nin, fmt = * ) ( pval( i ), i = 1, ngrids )
1339 READ( nin, fmt = * ) ( qval( i ), i = 1, ngrids )
1343 READ( nin, fmt = * ) alpha
1344 READ( nin, fmt = * ) beta
1348 READ( nin, fmt = * ) nmat
1349 IF( nmat.LT.1 .OR. nmat.GT.ldval )
THEN
1350 WRITE( nout, fmt = 9998 )
'Tests', ldval
1356 READ( nin, fmt = * ) ( diagval( i ), i = 1, nmat )
1357 READ( nin, fmt = * ) ( sideval( i ), i = 1, nmat )
1358 READ( nin, fmt = * ) ( trnaval( i ), i = 1, nmat )
1359 READ( nin, fmt = * ) ( trnbval( i ), i = 1, nmat )
1360 READ( nin, fmt = * ) ( uploval( i ), i = 1, nmat )
1361 READ( nin, fmt = * ) ( mval( i ), i = 1, nmat )
1362 READ( nin, fmt = * ) ( nval( i ), i = 1, nmat )
1363 READ( nin, fmt = * ) ( kval( i ), i = 1, nmat )
1364 READ( nin, fmt = * ) ( maval( i ), i = 1, nmat )
1365 READ( nin, fmt = * ) ( naval( i ), i = 1, nmat )
1366 READ( nin, fmt = * ) ( imbaval( i ), i = 1, nmat )
1367 READ( nin, fmt = * ) ( inbaval( i ), i = 1, nmat )
1368 READ( nin, fmt = * ) ( mbaval( i ), i = 1, nmat )
1369 READ( nin, fmt = * ) ( nbaval( i ), i = 1, nmat )
1370 READ( nin, fmt = * ) ( rscaval( i ), i = 1, nmat )
1371 READ( nin, fmt = * ) ( cscaval( i ), i = 1, nmat )
1372 READ( nin, fmt = * ) ( iaval( i ), i = 1, nmat )
1373 READ( nin, fmt = * ) ( javal( i ), i = 1, nmat )
1374 READ( nin, fmt = * ) ( mbval( i ), i = 1, nmat )
1375 READ( nin, fmt = * ) ( nbval( i ), i = 1, nmat )
1376 READ( nin, fmt = * ) ( imbbval( i ), i = 1, nmat )
1377 READ( nin, fmt = * ) ( inbbval( i ), i = 1, nmat )
1378 READ( nin, fmt = * ) ( mbbval( i ), i = 1, nmat )
1379 READ( nin, fmt = * ) ( nbbval( i ), i = 1, nmat )
1380 READ( nin, fmt = * ) ( rscbval( i ), i = 1, nmat )
1381 READ( nin, fmt = * ) ( cscbval( i ), i = 1, nmat )
1382 READ( nin, fmt = * ) ( ibval( i ), i = 1, nmat )
1383 READ( nin, fmt = * ) ( jbval( i ), i = 1, nmat )
1384 READ( nin, fmt = * ) ( mcval( i ), i = 1, nmat )
1385 READ( nin, fmt = * ) ( ncval( i ), i = 1, nmat )
1386 READ( nin, fmt = * ) ( imbcval( i ), i = 1, nmat )
1387 READ( nin, fmt = * ) ( inbcval( i ), i = 1, nmat )
1388 READ( nin, fmt = * ) ( mbcval( i ), i = 1, nmat )
1389 READ( nin, fmt = * ) ( nbcval( i ), i = 1, nmat )
1390 READ( nin, fmt = * ) ( rsccval( i ), i = 1, nmat )
1391 READ( nin, fmt = * ) ( csccval( i ), i = 1, nmat )
1392 READ( nin, fmt = * ) ( icval( i ), i = 1, nmat )
1393 READ( nin, fmt = * ) ( jcval( i ), i = 1, nmat )
1399 ltest( i ) = .false.
1402 READ( nin, fmt = 9996,
END = 50 ) SNAMET, ltestt
1404 IF( snamet.EQ.snames( i ) )
1408 WRITE( nout, fmt = 9995 )snamet
1424 IF( nprocs.LT.1 )
THEN
1427 nprocs =
max( nprocs, pval( i )*qval( i ) )
1429 CALL blacs_setup( iam, nprocs )
1435 CALL blacs_get( -1, 0, ictxt )
1441 CALL zgebs2d( ictxt,
'All',
' ', 1, 1, beta, 1 )
1446 CALL igebs2d( ictxt,
'All',
' ', 3, 1, work, 3 )
1450 work( i ) = ichar( diagval( j ) )
1451 work( i+1 ) = ichar( sideval( j ) )
1452 work( i+2 ) = ichar( trnaval( j ) )
1453 work( i+3 ) = ichar( trnbval( j ) )
1454 work( i+4 ) = ichar( uploval( j ) )
1457 CALL icopy( ngrids, pval, 1, work( i ), 1 )
1459 CALL icopy( ngrids, qval, 1, work( i ), 1 )
1461 CALL icopy( nmat, mval, 1, work( i ), 1 )
1463 CALL icopy( nmat, nval, 1, work( i ), 1 )
1465 CALL icopy( nmat, kval, 1, work( i ), 1 )
1467 CALL icopy( nmat, maval, 1, work( i ), 1 )
1469 CALL icopy( nmat, naval, 1, work( i ), 1 )
1471 CALL icopy( nmat, imbaval, 1, work( i ), 1 )
1473 CALL icopy( nmat, inbaval, 1, work( i ), 1 )
1475 CALL icopy( nmat, mbaval, 1, work( i ), 1 )
1477 CALL icopy( nmat, nbaval, 1, work( i ), 1 )
1479 CALL icopy( nmat, rscaval, 1, work( i ), 1 )
1481 CALL icopy( nmat, cscaval, 1, work( i ), 1 )
1483 CALL icopy( nmat, iaval, 1, work( i ), 1 )
1485 CALL icopy( nmat, javal, 1, work( i ), 1 )
1487 CALL icopy( nmat, mbval, 1, work( i ), 1 )
1489 CALL icopy( nmat, nbval, 1, work( i ), 1 )
1491 CALL icopy( nmat, imbbval, 1, work( i ), 1 )
1493 CALL icopy( nmat, inbbval, 1, work( i ), 1 )
1495 CALL icopy( nmat, mbbval, 1, work( i ), 1 )
1497 CALL icopy( nmat, nbbval, 1, work( i ), 1 )
1499 CALL icopy( nmat, rscbval, 1, work( i ), 1 )
1501 CALL icopy( nmat, cscbval, 1, work( i ), 1 )
1503 CALL icopy( nmat, ibval, 1, work( i ), 1 )
1505 CALL icopy( nmat, jbval, 1, work( i ), 1 )
1507 CALL icopy( nmat, mcval, 1, work( i ), 1 )
1509 CALL icopy( nmat, ncval, 1, work( i ), 1 )
1511 CALL icopy( nmat, imbcval, 1, work( i ), 1 )
1513 CALL icopy( nmat, inbcval, 1, work( i ), 1 )
1515 CALL icopy( nmat, mbcval, 1, work( i ), 1 )
1517 CALL icopy( nmat, nbcval, 1, work( i ), 1 )
1519 CALL icopy( nmat, rsccval, 1, work( i ), 1 )
1521 CALL icopy( nmat, csccval, 1, work( i ), 1 )
1523 CALL icopy( nmat, icval, 1, work( i ), 1 )
1525 CALL icopy( nmat, jcval, 1, work( i ), 1 )
1529 IF( ltest( j ) )
THEN
1537 CALL igebs2d( ictxt,
'All',
' ', i, 1, work, i )
1541 WRITE( nout, fmt = 9999 )
1542 $
'Level 3 PBLAS timing program.'
1543 WRITE( nout, fmt = 9999 ) usrinfo
1544 WRITE( nout, fmt = * )
1545 WRITE( nout, fmt = 9999 )
1546 $
'Tests of the complex double precision '//
1548 WRITE( nout, fmt = * )
1549 WRITE( nout, fmt = 9992 ) nmat
1550 WRITE( nout, fmt = 9986 ) nblog
1551 WRITE( nout, fmt = 9991 ) ngrids
1552 WRITE( nout, fmt = 9989 )
1553 $
'P', ( pval(i), i = 1,
min(ngrids, 5) )
1555 $
WRITE( nout, fmt = 9990 ) ( pval(i), i = 6,
1556 $
min( 10, ngrids ) )
1558 $
WRITE( nout, fmt = 9990 ) ( pval(i), i = 11,
1559 $
min( 15, ngrids ) )
1561 $
WRITE( nout, fmt = 9990 ) ( pval(i), i = 16, ngrids )
1562 WRITE( nout, fmt = 9989 )
1563 $
'Q', ( qval(i), i = 1,
min(ngrids, 5) )
1565 $
WRITE( nout, fmt = 9990 ) ( qval(i), i = 6,
1566 $
min( 10, ngrids ) )
1568 $
WRITE( nout, fmt = 9990 ) ( qval(i), i = 11,
1569 $
min( 15, ngrids ) )
1571 $
WRITE( nout, fmt = 9990 ) ( qval(i), i = 16, ngrids )
1572 WRITE( nout, fmt = 9994 )
alpha
1573 WRITE( nout, fmt = 9993 ) beta
1574 IF( ltest( 1 ) )
THEN
1575 WRITE( nout, fmt = 9988 ) snames( 1 ),
' ... Yes'
1577 WRITE( nout, fmt = 9988 ) snames( 1 ),
' ... No '
1580 IF( ltest( i ) )
THEN
1581 WRITE( nout, fmt = 9987 ) snames( i ),
' ... Yes'
1583 WRITE( nout, fmt = 9987 ) snames( i ),
' ... No '
1586 WRITE( nout, fmt = * )
1593 $
CALL blacs_setup( iam, nprocs )
1598 CALL blacs_get( -1, 0, ictxt )
1601 CALL zgebr2d( ictxt,
'All',
' ', 1, 1,
alpha, 1, 0, 0 )
1602 CALL zgebr2d( ictxt,
'All',
' ', 1, 1, beta, 1, 0, 0 )
1604 CALL igebr2d( ictxt,
'All',
' ', 3, 1, work, 3, 0, 0 )
1609 i = 2*ngrids + 38*nmat + nsubs
1610 CALL igebr2d( ictxt,
'All',
' ', i, 1, work, i, 0, 0 )
1614 diagval( j ) = char( work( i ) )
1615 sideval( j ) = char( work( i+1 ) )
1616 trnaval( j ) = char( work( i+2 ) )
1617 trnbval( j ) = char( work( i+3 ) )
1618 uploval( j ) = char( work( i+4 ) )
1621 CALL icopy( ngrids, work( i ), 1, pval, 1 )
1623 CALL icopy( ngrids, work( i ), 1, qval, 1 )
1625 CALL icopy( nmat, work( i ), 1, mval, 1 )
1627 CALL icopy( nmat, work( i ), 1, nval, 1 )
1629 CALL icopy( nmat, work( i ), 1, kval, 1 )
1631 CALL icopy( nmat, work( i ), 1, maval, 1 )
1633 CALL icopy( nmat, work( i ), 1, naval, 1 )
1635 CALL icopy( nmat, work( i ), 1, imbaval, 1 )
1637 CALL icopy( nmat, work( i ), 1, inbaval, 1 )
1639 CALL icopy( nmat, work( i ), 1, mbaval, 1 )
1641 CALL icopy( nmat, work( i ), 1, nbaval, 1 )
1643 CALL icopy( nmat, work( i ), 1, rscaval, 1 )
1645 CALL icopy( nmat, work( i ), 1, cscaval, 1 )
1647 CALL icopy( nmat, work( i ), 1, iaval, 1 )
1649 CALL icopy( nmat, work( i ), 1, javal, 1 )
1651 CALL icopy( nmat, work( i ), 1, mbval, 1 )
1653 CALL icopy( nmat, work( i ), 1, nbval, 1 )
1655 CALL icopy( nmat, work( i ), 1, imbbval, 1 )
1657 CALL icopy( nmat, work( i ), 1, inbbval, 1 )
1659 CALL icopy( nmat, work( i ), 1, mbbval, 1 )
1661 CALL icopy( nmat, work( i ), 1, nbbval, 1 )
1663 CALL icopy( nmat, work( i ), 1, rscbval, 1 )
1665 CALL icopy( nmat, work( i ), 1, cscbval, 1 )
1667 CALL icopy( nmat, work( i ), 1, ibval, 1 )
1669 CALL icopy( nmat, work( i ), 1, jbval, 1 )
1671 CALL icopy( nmat, work( i ), 1, mcval, 1 )
1673 CALL icopy( nmat, work( i ), 1, ncval, 1 )
1675 CALL icopy( nmat, work( i ), 1, imbcval, 1 )
1677 CALL icopy( nmat, work( i ), 1, inbcval, 1 )
1679 CALL icopy( nmat, work( i ), 1, mbcval, 1 )
1681 CALL icopy( nmat, work( i ), 1, nbcval, 1 )
1683 CALL icopy( nmat, work( i ), 1, rsccval, 1 )
1685 CALL icopy( nmat, work( i ), 1, csccval, 1 )
1687 CALL icopy( nmat, work( i ), 1, icval, 1 )
1689 CALL icopy( nmat, work( i ), 1, jcval, 1 )
1693 IF( work( i ).EQ.1 )
THEN
1696 ltest( j ) = .false.
1707 120
WRITE( nout, fmt = 9997 )
1709 IF( nout.NE.6 .AND. nout.NE.0 )
1711 CALL blacs_abort( ictxt, 1 )
1716 9998
FORMAT(
' Number of values of ',5a,
' is less than 1 or greater ',
1718 9997
FORMAT(
' Illegal input in file ',40a,
'. Aborting run.' )
1719 9996
FORMAT( a7, l2 )
1720 9995
FORMAT(
' Subprogram name ', a7,
' not recognized',
1721 $ /
' ******* TESTS ABANDONED *******' )
1722 9994
FORMAT( 2x,
'Alpha : (', g16.6,
1724 9993
FORMAT( 2x,
'Beta : (', g16.6,
1726 9992
FORMAT( 2x,
'Number of Tests : ', i6 )
1727 9991
FORMAT( 2x,
'Number of process grids : ', i6 )
1728 9990
FORMAT( 2x,
' : ', 5i6 )
1729 9989
FORMAT( 2x, a1,
' : ', 5i6 )
1730 9988
FORMAT( 2x,
'Routines to be tested : ', a, a8 )
1731 9987
FORMAT( 2x,
' ', a, a8 )
1732 9986
FORMAT( 2x, '
Logical block size :
', I6 )