4 CHARACTER*7 SNAMES( NSUBS )
6 DATA snames/
'PZSWAP ',
'PZSCAL ',
7 $
'PZDSCAL',
'PZCOPY',
'PZAXPY ',
8 $
'PZDOTU ',
'PZDOTC' ,
'PDZNRM2',
9 $
'PDZASUM',
'PZAMAX '/
104 INTEGER maxtests, maxgrids, zplxsz, totmem, memsiz,
106 parameter( maxtests = 20, maxgrids = 20, zplxsz = 16,
107 $ totmem = 2000000, nsubs = 10,
108 $ memsiz = totmem / zplxsz )
109 INTEGER block_cyclic_2d_inb, csrc_, ctxt_, dlen_,
110 $ dtype_, imb_, inb_, lld_, mb_, m_, nb_, n_,
112 parameter( block_cyclic_2d_inb = 2, dlen_ = 11,
113 $ dtype_ = 1, ctxt_ = 2, m_ = 3, n_ = 4,
114 $ imb_ = 5, inb_ = 6, mb_ = 7, nb_ = 8,
115 $ rsrc_ = 9, csrc_ = 10, lld_ = 11 )
118 INTEGER csrcx, csrcy, i, iam, ictxt, imbx, imby, imidx,
119 $ imidy, inbx, inby, incx, incy, ipostx, iposty,
120 $ iprex, iprey, ipx, ipy, ix, ixseed, iy, iyseed,
121 $ j, jx, jy, k, mbx, mby, memreqd, mpx, mpy, mx,
122 $ my, mycol, myrow, n, nbx, nby, ngrids, nout,
123 $ npcol, nprocs, nprow, nqx, nqy, ntests, nx, ny,
124 $ pisclr, rsrcx, rsrcy
125 DOUBLE PRECISION adds, cflops, mults, nops, pusclr, wflops
126 COMPLEX*16 alpha, psclr
130 LOGICAL ltest( nsubs ), ycheck( nsubs )
131 INTEGER cscxval( maxtests ), cscyval( maxtests ),
132 $ descx( dlen_ ), descy( dlen_ ), ierr( 2 ),
133 $ imbxval( maxtests ), imbyval( maxtests ),
134 $ inbxval( maxtests ), inbyval( maxtests ),
135 $ incxval( maxtests ), incyval( maxtests ),
136 $ ixval( maxtests ), iyval( maxtests ),
137 $ jxval( maxtests ), jyval( maxtests ),
138 $ mbxval( maxtests ), mbyval( maxtests ),
139 $ mxval( maxtests ), myval( maxtests ),
140 $ nbxval( maxtests ), nbyval( maxtests ),
141 $ nval( maxtests ), nxval( maxtests ),
142 $ nyval( maxtests ), pval( maxtests ),
143 $ qval( maxtests ), rscxval( maxtests ),
144 $ rscyval( maxtests )
145 DOUBLE PRECISION ctime( 1 ), wtime( 1 )
146 COMPLEX*16 mem( memsiz )
149 EXTERNAL blacs_barrier, blacs_exit, blacs_get,
150 $ blacs_gridexit, blacs_gridinfo, blacs_gridinit,
154 $ pzcopy, pzdotc, pzdotu, pzdscal,
pzlagen,
161 CHARACTER*7 snames( nsubs )
164 COMMON /snamec/snames
165 COMMON /infoc/info, nblog
166 COMMON /pberrorc/nout, abrtflg
169 DATA ycheck/.true., .false., .false., .true.,
170 $ .true., .true., .true., .false., .false.,
189 CALL blacs_pinfo( iam, nprocs )
190 CALL pzbla1timinfo( outfile, nout, ntests, nval, mxval, nxval,
191 $ imbxval, mbxval, inbxval, nbxval, rscxval,
192 $ cscxval, ixval, jxval, incxval, myval,
193 $ nyval, imbyval, mbyval, inbyval, nbyval,
194 $ rscyval, cscyval, iyval, jyval, incyval,
195 $ maxtests, ngrids, pval, maxgrids, qval,
196 $ maxgrids, ltest, iam, nprocs, alpha, mem )
199 $
WRITE( nout, fmt = 9986 )
211 IF( nprow.LT.1 )
THEN
213 $
WRITE( nout, fmt = 9999 )
'GRID SIZE',
'NPROW', nprow
215 ELSE IF( npcol.LT.1 )
THEN
217 $
WRITE( nout, fmt = 9999 )
'GRID SIZE',
'NPCOL', npcol
219 ELSE IF( nprow*npcol.GT.nprocs )
THEN
221 $
WRITE( nout, fmt = 9998 ) nprow*npcol, nprocs
225 IF( ierr( 1 ).GT.0 )
THEN
227 $
WRITE( nout, fmt = 9997 )
'GRID'
233 CALL blacs_get( -1, 0, ictxt )
234 CALL blacs_gridinit( ictxt,
'Row-major', nprow, npcol )
235 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
240 IF( myrow.GE.nprow .OR. mycol.GE.npcol )
274 WRITE( nout, fmt = * )
275 WRITE( nout, fmt = 9996 ) j, nprow, npcol
276 WRITE( nout, fmt = * )
278 WRITE( nout, fmt = 9995 )
279 WRITE( nout, fmt = 9994 )
280 WRITE( nout, fmt = 9995 )
281 WRITE( nout, fmt = 9993 ) n, ix, jx, mx, nx, imbx, inbx,
282 $ mbx, nbx, rsrcx, csrcx, incx
284 WRITE( nout, fmt = 9995 )
285 WRITE( nout, fmt = 9992 )
286 WRITE( nout, fmt = 9995 )
287 WRITE( nout, fmt = 9993 ) n, iy, jy, my, ny, imby, inby,
288 $ mby, nby, rsrcy, csrcy, incy
289 WRITE( nout, fmt = 9995 )
290 WRITE( nout, fmt = 9983 )
296 $ block_cyclic_2d_inb, mx, nx, imbx, inbx,
297 $ mbx, nbx, rsrcx, csrcx, incx, mpx, nqx,
298 $ iprex, imidx, ipostx, 0, 0, ierr( 1 ) )
300 $ block_cyclic_2d_inb, my, ny, imby, inby,
301 $ mby, nby, rsrcy, csrcy, incy, mpy, nqy,
302 $ iprey, imidy, iposty, 0, 0, ierr( 2 ) )
304 IF( ierr( 1 ).GT.0 .OR. ierr( 2 ).GT.0 )
311 ipy = ipx + descx( lld_ ) * nqx
315 memreqd = ipy + descy( lld_ ) * nqy - 1
317 IF( memreqd.GT.memsiz )
THEN
319 $
WRITE( nout, fmt = 9990 ) memreqd*zplxsz
325 CALL igsum2d( ictxt,
'All',
' ', 1, 1, ierr, 1, -1, 0 )
327 IF( ierr( 1 ).GT.0 )
THEN
329 $
WRITE( nout, fmt = 9991 )
339 IF( .NOT.ltest( k ) )
344 CALL pvdimchk( ictxt, nout, n,
'X', ix, jx, descx, incx,
346 CALL pvdimchk( ictxt, nout, n,
'Y', iy, jy, descy, incy,
349 IF( ierr( 1 ).NE.0 .OR. ierr( 2 ).NE.0 )
354 CALL pzlagen( .false.,
'None',
'No diag', 0, mx, nx, 1,
355 $ 1, descx, ixseed, mem( ipx ),
358 $
CALL pzlagen( .false.,
'None',
'No diag', 0, my, ny,
359 $ 1, 1, descy, iyseed, mem( ipy ),
364 CALL blacs_barrier( ictxt,
'All' )
375 CALL pzswap( n, mem( ipx ), ix, jx, descx, incx,
376 $ mem( ipy ), iy, jy, descy, incy )
379 ELSE IF( k.EQ.2 )
THEN
386 CALL pzscal( n, alpha, mem( ipx ), ix, jx, descx,
390 ELSE IF( k.EQ.3 )
THEN
397 CALL pzdscal( n, dble( alpha ), mem( ipx ), ix, jx,
401 ELSE IF( k.EQ.4 )
THEN
408 CALL pzcopy( n, mem( ipx ), ix, jx, descx, incx,
409 $ mem( ipy ), iy, jy, descy, incy )
412 ELSE IF( k.EQ.5 )
THEN
419 CALL pzaxpy( n, alpha, mem( ipx ), ix, jx, descx,
420 $ incx, mem( ipy ), iy, jy, descy, incy )
423 ELSE IF( k.EQ.6 )
THEN
427 adds = dble( 2 * ( n - 1 ) )
430 CALL pzdotu( n, psclr, mem( ipx ), ix, jx, descx,
431 $ incx, mem( ipy ), iy, jy, descy, incy )
434 ELSE IF( k.EQ.7 )
THEN
438 adds = dble( 2 * ( n - 1 ) )
441 CALL pzdotc( n, psclr, mem( ipx ), ix, jx, descx,
442 $ incx, mem( ipy ), iy, jy, descy, incy )
445 ELSE IF( k.EQ.8 )
THEN
449 adds = dble( 2 * ( n - 1 ) )
452 CALL pdznrm2( n, pusclr, mem( ipx ), ix, jx, descx,
456 ELSE IF( k.EQ.9 )
THEN
460 adds = dble( 2 * ( n - 1 ) )
463 CALL pdzasum( n, pusclr, mem( ipx ), ix, jx, descx,
467 ELSE IF( k.EQ.10 )
THEN
472 CALL pzamax( n, psclr, pisclr, mem( ipx ), ix, jx,
482 $
WRITE( nout, fmt = 9985 ) info
486 CALL pb_combine( ictxt,
'All',
'>',
'W', 1, 1, wtime )
487 CALL pb_combine( ictxt,
'All',
'>',
'C', 1, 1, ctime )
499 IF( wtime( 1 ).GT.0.0d+0 )
THEN
500 wflops = nops / ( wtime( 1 ) * 1.0d+6 )
507 IF( ctime( 1 ).GT.0.0d+0 )
THEN
508 cflops = nops / ( ctime( 1 ) * 1.0d+6 )
513 WRITE( nout, fmt = 9984 ) snames( k ), wtime( 1 ),
514 $ wflops, ctime( 1 ), cflops
520 40
IF( iam.EQ.0 )
THEN
521 WRITE( nout, fmt = 9995 )
522 WRITE( nout, fmt = * )
523 WRITE( nout, fmt = 9988 ) j
529 WRITE( nout, fmt = * )
530 WRITE( nout, fmt = 9987 )
531 WRITE( nout, fmt = * )
534 CALL blacs_gridexit( ictxt )
540 9999
FORMAT(
'ILLEGAL ', a,
': ', a,
' = ', i10,
541 $
' should be at least 1' )
542 9998
FORMAT(
'ILLEGAL GRID: NPROW*NPCOL = ', i4,
543 $
'. It can be at most', i4 )
544 9997
FORMAT(
'Bad ', a,
' parameters: going on to next test case.' )
545 9996
FORMAT( 2x,
'Test number ', i2 ,
' started on a ', i4,
' x ',
546 $ i4,
' process grid.' )
547 9995
FORMAT( 2x,
'---------------------------------------------------',
548 $
'--------------------------' )
549 9994
FORMAT( 2x,
' N IX JX MX NX IMBX INBX',
550 $
' MBX NBX RSRCX CSRCX INCX' )
551 9993
FORMAT( 2x,i6,1x,i6,1x,i6,1x,i6,1x,i6,1x,i5,1x,i5,1x,i5,1x,i5,1x,
553 9992
FORMAT( 2x,
' N IY JY MY NY IMBY INBY',
554 $
' MBY NBY RSRCY CSRCY INCY' )
555 9991
FORMAT(
'Not enough memory for this test: going on to',
556 $
' next test case.' )
557 9990
FORMAT(
'Not enough memory. Need: ', i12 )
558 9988
FORMAT( 2x,
'Test number ', i2,
' completed.' )
559 9987
FORMAT( 2x,
'End of Tests.' )
560 9986
FORMAT( 2x,
'Tests started.' )
561 9985
FORMAT( 2x,
' ***** Operation not supported, error code: ',
563 9984
FORMAT( 2x,
'| ', a, 2x, f13.3, 2x, f13.3, 2x, f13.3, 2x, f13.3 )
564 9983
FORMAT( 2x,
' WALL time (s) WALL Mflops ',
565 $
' CPU time (s) CPU Mflops' )
573 $ IMBXVAL, MBXVAL, INBXVAL, NBXVAL,
574 $ RSCXVAL, CSCXVAL, IXVAL, JXVAL,
575 $ INCXVAL, MYVAL, NYVAL, IMBYVAL, MBYVAL,
576 $ INBYVAL, NBYVAL, RSCYVAL, CSCYVAL,
577 $ IYVAL, JYVAL, INCYVAL, LDVAL, NGRIDS,
578 $ PVAL, LDPVAL, QVAL, LDQVAL, LTEST, IAM,
579 $ NPROCS, ALPHA, WORK )
587 INTEGER IAM, LDPVAL, LDQVAL, LDVAL, NGRIDS, NMAT, NOUT,
592 CHARACTER*( * ) SUMMRY
594 INTEGER CSCXVAL( LDVAL ), CSCYVAL( LDVAL ),
595 $ IMBXVAL( LDVAL ), IMBYVAL( LDVAL ),
596 $ inbxval( ldval ), inbyval( ldval ),
597 $ incxval( ldval ), incyval( ldval ),
598 $ ixval( ldval ), iyval( ldval ), jxval( ldval ),
599 $ jyval( ldval ), mbxval( ldval ),
600 $ mbyval( ldval ), mxval( ldval ),
601 $ myval( ldval ), nbxval( ldval ),
602 $ nbyval( ldval ), nval( ldval ), nxval( ldval ),
603 $ nyval( ldval ), pval( ldpval ), qval( ldqval ),
604 $ rscxval( ldval ), rscyval( ldval ), work( * )
798 PARAMETER ( NIN = 11, nsubs = 10 )
809 EXTERNAL blacs_abort, blacs_get, blacs_gridexit,
810 $ blacs_gridinit, blacs_setup,
icopy, igebr2d,
811 $ igebs2d, sgebr2d, sgebs2d, zgebr2d, zgebs2d
817 CHARACTER*7 SNAMES( NSUBS )
818 COMMON /SNAMEC/SNAMES
830 OPEN( nin, file=
'PZBLAS1TIM.dat', status=
'OLD' )
831 READ( nin, fmt = * ) summry
836 READ( nin, fmt = 9999 ) usrinfo
840 READ( nin, fmt = * ) summry
841 READ( nin, fmt = * ) nout
842 IF( nout.NE.0 .AND. nout.NE.6 )
843 $
OPEN( nout, file = summry, status =
'UNKNOWN' )
849 READ( nin, fmt = * ) ngrids
850 IF( ngrids.LT.1 .OR. ngrids.GT.ldpval )
THEN
851 WRITE( nout, fmt = 9998 )
'Grids', ldpval
853 ELSE IF( ngrids.GT.ldqval )
THEN
854 WRITE( nout, fmt = 9998 )
'Grids', ldqval
860 READ( nin, fmt = * ) ( pval( i ), i = 1, ngrids )
861 READ( nin, fmt = * ) ( qval( i ), i = 1, ngrids )
865 READ( nin, fmt = * ) alpha
869 READ( nin, fmt = * ) nmat
870 IF( nmat.LT.1 .OR. nmat.GT.ldval )
THEN
871 WRITE( nout, fmt = 9998 )
'Tests', ldval
877 READ( nin, fmt = * ) ( nval( i ), i = 1, nmat )
878 READ( nin, fmt = * ) ( mxval( i ), i = 1, nmat )
879 READ( nin, fmt = * ) ( nxval( i ), i = 1, nmat )
880 READ( nin, fmt = * ) ( imbxval( i ), i = 1, nmat )
881 READ( nin, fmt = * ) ( inbxval( i ), i = 1, nmat )
882 READ( nin, fmt = * ) ( mbxval( i ), i = 1, nmat )
883 READ( nin, fmt = * ) ( nbxval( i ), i = 1, nmat )
884 READ( nin, fmt = * ) ( rscxval( i ), i = 1, nmat )
885 READ( nin, fmt = * ) ( cscxval( i ), i = 1, nmat )
886 READ( nin, fmt = * ) ( ixval( i ), i = 1, nmat )
887 READ( nin, fmt = * ) ( jxval( i ), i = 1, nmat )
888 READ( nin, fmt = * ) ( incxval( i ), i = 1, nmat )
889 READ( nin, fmt = * ) ( myval( i ), i = 1, nmat )
890 READ( nin, fmt = * ) ( nyval( i ), i = 1, nmat )
891 READ( nin, fmt = * ) ( imbyval( i ), i = 1, nmat )
892 READ( nin, fmt = * ) ( inbyval( i ), i = 1, nmat )
893 READ( nin, fmt = * ) ( mbyval( i ), i = 1, nmat )
894 READ( nin, fmt = * ) ( nbyval( i ), i = 1, nmat )
895 READ( nin, fmt = * ) ( rscyval( i ), i = 1, nmat )
896 READ( nin, fmt = * ) ( cscyval( i ), i = 1, nmat )
897 READ( nin, fmt = * ) ( iyval( i ), i = 1, nmat )
898 READ( nin, fmt = * ) ( jyval( i ), i = 1, nmat )
899 READ( nin, fmt = * ) ( incyval( i ), i = 1, nmat )
908 READ( nin, fmt = 9996,
END = 50 ) SNAMET, ltestt
910 IF( snamet.EQ.snames( i ) )
914 WRITE( nout, fmt = 9995 )snamet
930 IF( nprocs.LT.1 )
THEN
933 nprocs =
max( nprocs, pval( i )*qval( i ) )
935 CALL blacs_setup( iam, nprocs )
941 CALL blacs_get( -1, 0, ictxt )
942 CALL blacs_gridinit( ictxt,
'Row-major', 1, nprocs )
946 CALL zgebs2d( ictxt,
'All',
' ', 1, 1, alpha, 1 )
950 CALL igebs2d( ictxt,
'All',
' ', 2, 1, work, 2 )
953 CALL icopy( ngrids, pval, 1, work( i ), 1 )
955 CALL icopy( ngrids, qval, 1, work( i ), 1 )
957 CALL icopy( nmat, nval, 1, work( i ), 1 )
959 CALL icopy( nmat, mxval, 1, work( i ), 1 )
961 CALL icopy( nmat, nxval, 1, work( i ), 1 )
963 CALL icopy( nmat, imbxval, 1, work( i ), 1 )
965 CALL icopy( nmat, inbxval, 1, work( i ), 1 )
967 CALL icopy( nmat, mbxval, 1, work( i ), 1 )
969 CALL icopy( nmat, nbxval, 1, work( i ), 1 )
971 CALL icopy( nmat, rscxval, 1, work( i ), 1 )
973 CALL icopy( nmat, cscxval, 1, work( i ), 1 )
975 CALL icopy( nmat, ixval, 1, work( i ), 1 )
977 CALL icopy( nmat, jxval, 1, work( i ), 1 )
979 CALL icopy( nmat, incxval, 1, work( i ), 1 )
981 CALL icopy( nmat, myval, 1, work( i ), 1 )
983 CALL icopy( nmat, nyval, 1, work( i ), 1 )
985 CALL icopy( nmat, imbyval, 1, work( i ), 1 )
987 CALL icopy( nmat, inbyval, 1, work( i ), 1 )
989 CALL icopy( nmat, mbyval, 1, work( i ), 1 )
991 CALL icopy( nmat, nbyval, 1, work( i ), 1 )
993 CALL icopy( nmat, rscyval, 1, work( i ), 1 )
995 CALL icopy( nmat, cscyval, 1, work( i ), 1 )
997 CALL icopy( nmat, iyval, 1, work( i ), 1 )
999 CALL icopy( nmat, jyval, 1, work( i ), 1 )
1001 CALL icopy( nmat, incyval, 1, work( i ), 1 )
1005 IF( ltest( j ) )
THEN
1013 CALL igebs2d( ictxt,
'All',
' ', i, 1, work, i )
1017 WRITE( nout, fmt = 9999 )
1018 $
'Level 1 PBLAS timing program.'
1019 WRITE( nout, fmt = 9999 ) usrinfo
1020 WRITE( nout, fmt = * )
1021 WRITE( nout, fmt = 9999 )
1022 $
'Timing of the complex double precision '//
1024 WRITE( nout, fmt = * )
1025 WRITE( nout, fmt = 9999 )
1026 $
'The following parameter values will be used:'
1027 WRITE( nout, fmt = * )
1028 WRITE( nout, fmt = 9993 ) nmat
1029 WRITE( nout, fmt = 9992 ) ngrids
1030 WRITE( nout, fmt = 9990 )
1031 $
'P', ( pval(i), i = 1,
min(ngrids, 5) )
1033 $
WRITE( nout, fmt = 9991 ) ( pval(i), i = 6,
1034 $
min( 10, ngrids ) )
1036 $
WRITE( nout, fmt = 9991 ) ( pval(i), i = 11,
1037 $
min( 15, ngrids ) )
1039 $
WRITE( nout, fmt = 9991 ) ( pval(i), i = 16, ngrids )
1040 WRITE( nout, fmt = 9990 )
1041 $
'Q', ( qval(i), i = 1,
min(ngrids, 5) )
1043 $
WRITE( nout, fmt = 9991 ) ( qval(i), i = 6,
1044 $
min( 10, ngrids ) )
1046 $
WRITE( nout, fmt = 9991 ) ( qval(i), i = 11,
1047 $
min( 15, ngrids ) )
1049 $
WRITE( nout, fmt = 9991 ) ( qval(i), i = 16, ngrids )
1050 WRITE( nout, fmt = 9994 ) alpha
1051 IF( ltest( 1 ) )
THEN
1052 WRITE( nout, fmt = 9989 ) snames( 1 ),
' ... Yes'
1054 WRITE( nout, fmt = 9989 ) snames( 1 ),
' ... No '
1057 IF( ltest( i ) )
THEN
1058 WRITE( nout, fmt = 9988 ) snames( i ),
' ... Yes'
1060 WRITE( nout, fmt = 9988 ) snames( i ),
' ... No '
1063 WRITE( nout, fmt = * )
1070 $
CALL blacs_setup( iam, nprocs )
1075 CALL blacs_get( -1, 0, ictxt )
1076 CALL blacs_gridinit( ictxt,
'Row-major', 1, nprocs )
1078 CALL zgebr2d( ictxt,
'All',
' ', 1, 1, alpha, 1, 0, 0 )
1080 CALL igebr2d( ictxt,
'All',
' ', 2, 1, work, 2, 0, 0 )
1084 i = 2*ngrids + 23*nmat + nsubs
1085 CALL igebr2d( ictxt,
'All',
' ', i, 1, work, i, 0, 0 )
1088 CALL icopy( ngrids, work( i ), 1, pval, 1 )
1090 CALL icopy( ngrids, work( i ), 1, qval, 1 )
1092 CALL icopy( nmat, work( i ), 1, nval, 1 )
1094 CALL icopy( nmat, work( i ), 1, mxval, 1 )
1096 CALL icopy( nmat, work( i ), 1, nxval, 1 )
1098 CALL icopy( nmat, work( i ), 1, imbxval, 1 )
1100 CALL icopy( nmat, work( i ), 1, inbxval, 1 )
1102 CALL icopy( nmat, work( i ), 1, mbxval, 1 )
1104 CALL icopy( nmat, work( i ), 1, nbxval, 1 )
1106 CALL icopy( nmat, work( i ), 1, rscxval, 1 )
1108 CALL icopy( nmat, work( i ), 1, cscxval, 1 )
1110 CALL icopy( nmat, work( i ), 1, ixval, 1 )
1112 CALL icopy( nmat, work( i ), 1, jxval, 1 )
1114 CALL icopy( nmat, work( i ), 1, incxval, 1 )
1116 CALL icopy( nmat, work( i ), 1, myval, 1 )
1118 CALL icopy( nmat, work( i ), 1, nyval, 1 )
1120 CALL icopy( nmat, work( i ), 1, imbyval, 1 )
1122 CALL icopy( nmat, work( i ), 1, inbyval, 1 )
1124 CALL icopy( nmat, work( i ), 1, mbyval, 1 )
1126 CALL icopy( nmat, work( i ), 1, nbyval, 1 )
1128 CALL icopy( nmat, work( i ), 1, rscyval, 1 )
1130 CALL icopy( nmat, work( i ), 1, cscyval, 1 )
1132 CALL icopy( nmat, work( i ), 1, iyval, 1 )
1134 CALL icopy( nmat, work( i ), 1, jyval, 1 )
1136 CALL icopy( nmat, work( i ), 1, incyval, 1 )
1140 IF( work( i ).EQ.1 )
THEN
1143 ltest( j ) = .false.
1150 CALL blacs_gridexit( ictxt )
1154 100
WRITE( nout, fmt = 9997 )
1156 IF( nout.NE.6 .AND. nout.NE.0 )
1158 CALL blacs_abort( ictxt, 1 )
1163 9998
FORMAT(
' Number of values of ',5a,
' is less than 1 or greater ',
1165 9997
FORMAT(
' Illegal input in file ',40a,
'. Aborting run.' )
1166 9996
FORMAT( a7, l2 )
1167 9995
FORMAT(
' Subprogram name ', a7,
' not recognized',
1168 $ /
' ******* TESTS ABANDONED *******' )
1169 9994
FORMAT( 2x,
'Alpha : (', g16.6,
1171 9993
FORMAT( 2x,
'Number of Tests : ', i6 )
1172 9992
FORMAT( 2x,
'Number of process grids : ', i6 )
1173 9991
FORMAT( 2x,
' : ', 5i6 )
1174 9990
FORMAT( 2x, a1,
' : ', 5i6 )
1175 9989
FORMAT( 2x,
'Routines to be tested : ', a, a8 )
1176 9988
FORMAT( 2x,
' ', a, a8 )
subroutine pb_combine(ictxt, scope, op, tmtype, n, ibeg, times)
subroutine pvdimchk(ictxt, nout, n, matrix, ix, jx, descx, incx, info)
subroutine icopy(n, sx, incx, sy, incy)
subroutine pvdescchk(ictxt, nout, matrix, descx, dtx, mx, nx, imbx, inbx, mbx, nbx, rsrcx, csrcx, incx, mpx, nqx, iprex, imidx, ipostx, igap, gapmul, info)
subroutine pzbla1timinfo(summry, nout, nmat, nval, mxval, nxval, imbxval, mbxval, inbxval, nbxval, rscxval, cscxval, ixval, jxval, incxval, myval, nyval, imbyval, mbyval, inbyval, nbyval, rscyval, cscyval, iyval, jyval, incyval, ldval, ngrids, pval, ldpval, qval, ldqval, ltest, iam, nprocs, alpha, work)
subroutine pzlagen(inplace, aform, diag, offa, m, n, ia, ja, desca, iaseed, a, lda)