4 CHARACTER*7 SNAMES( NSUBS )
6 DATA snames/
'PSSWAP ',
'PSSCAL ',
'PSCOPY ',
7 $
'PSAXPY ',
'PSDOT ',
'PSNRM2 ',
8 $
'PSASUM ',
'PSAMAX '/
99 INTEGER maxtests, maxgrids, realsz, totmem, memsiz,
101 parameter( maxtests = 20, maxgrids = 20, realsz = 4,
102 $ totmem = 2000000, nsubs = 8,
103 $ memsiz = totmem / realsz )
104 INTEGER block_cyclic_2d_inb, csrc_, ctxt_, dlen_,
105 $ dtype_, imb_, inb_, lld_, mb_, m_, nb_, n_,
107 parameter( block_cyclic_2d_inb = 2, dlen_ = 11,
108 $ dtype_ = 1, ctxt_ = 2, m_ = 3, n_ = 4,
109 $ imb_ = 5, inb_ = 6, mb_ = 7, nb_ = 8,
110 $ rsrc_ = 9, csrc_ = 10, lld_ = 11 )
113 INTEGER csrcx, csrcy, , iam, ictxt, imbx, imby, imidx,
114 $ imidy, inbx, inby, incx, incy, , iposty,
115 $ iprex, iprey, ipx, ipy, ix, ixseed, iy, iyseed,
116 $ j, jx, jy, k, mbx, mby, memreqd, mpx, mpy, ,
117 $ my, mycol, myrow, n, nbx, nby, ngrids, nout,
118 $ npcol, nprocs, nprow, nqx, nqy, ntests, nx, ny,
119 $ pisclr, rsrcx, rsrcy
121 DOUBLE PRECISION adds, cflops, , nops,
125 LOGICAL ltest( nsubs ), ycheck( nsubs )
126 INTEGER cscxval( maxtests ), cscyval( maxtests ),
127 $ descx( dlen_ ), descy( dlen_ ), ierr( 2 ),
128 $ imbxval( maxtests ), ( maxtests ),
129 $ inbxval( maxtests ), inbyval( ),
141 DOUBLE PRECISION ctime( 1 ), ( 1 )
144 EXTERNAL blacs_barrier, blacs_exit, blacs_get,
155 CHARACTER*7 snames( nsubs )
158 COMMON /snamec/snames
159 COMMON /infoc/info, nblog
160 COMMON /pberrorc/nout, abrtflg
163 DATA ycheck/.true., .false., .true., .true., .true.,
164 $ .false., .false., .false./
182 CALL blacs_pinfo( iam, nprocs )
183 CALL psbla1timinfo( outfile, nout, ntests, nval, mxval, nxval,
184 $ imbxval, mbxval, inbxval, nbxval, rscxval,
185 $ cscxval, ixval, jxval, incxval, myval,
186 $ nyval, imbyval, mbyval, inbyval, nbyval,
187 $ rscyval, cscyval, iyval, jyval, incyval,
188 $ maxtests, ngrids, pval, maxgrids, qval,
192 $
WRITE( nout, fmt = 9986 )
204 IF( nprow.LT.1 )
THEN
206 $
WRITE( nout, fmt = 9999 )
'GRID SIZE',
'NPROW', nprow
208 ELSE IF( npcol.LT.1 )
THEN
210 $
WRITE( nout, fmt = 9999 )
'GRID SIZE',
'NPCOL', npcol
212 ELSE IF( nprow*npcol.GT.nprocs )
THEN
214 $
WRITE( nout, fmt = 9998 ) nprow*npcol, nprocs
218 IF( ierr( 1 ).GT.0 )
THEN
220 $
WRITE( nout, fmt = 9997 )
'GRID'
226 CALL blacs_get( -1, 0, ictxt )
233 IF( myrow.GE.nprow .OR. mycol.GE.npcol )
267 WRITE( nout, fmt = * )
268 WRITE( nout, fmt = 9996 ) j, nprow, npcol
269 WRITE( nout, fmt = * )
271 WRITE( nout, fmt = 9995 )
272 WRITE( nout, fmt = 9994 )
273 WRITE( nout, fmt = 9995 )
274 WRITE( nout, fmt = 9993 ) n, ix, jx, mx, nx, imbx, inbx,
275 $ mbx, nbx, rsrcx, csrcx, incx
277 WRITE( nout, fmt = 9995 )
278 WRITE( nout, fmt = 9992 )
279 WRITE( nout, fmt = 9995 )
280 WRITE( nout, fmt = 9993 ) n, iy, jy, my, ny, imby, inby
281 $ mby, nby, rsrcy, csrcy, incy
282 WRITE( nout, fmt = 9995 )
283 WRITE( nout, fmt = 9983 )
289 $ block_cyclic_2d_inb, mx, nx
291 $ iprex, imidx, ipostx, 0, 0, ierr( 1 ) )
293 $ block_cyclic_2d_inb, my, ny, imby, inby,
294 $ mby, nby, rsrcy, csrcy, incy, mpy, nqy,
295 $ iprey, imidy, iposty, 0, 0, ierr( 2 ) )
297 IF( ierr( 1 ).GT.0 .OR. ierr( 2 ).GT.0 )
304 ipy = ipx + descx( lld_ ) * nqx
308 memreqd = ipy + descy( lld_ ) * nqy - 1
310 IF( memreqd.GT.memsiz )
THEN
312 $
WRITE( nout, fmt = 9990 ) memreqd*realsz
318 CALL igsum2d( ictxt,
'All',
' ', 1, 1, ierr, 1, -1, 0 )
320 IF( ierr( 1 ).GT.0 )
THEN
322 $
WRITE( nout, fmt = 9991 )
332 IF( .NOT.ltest( k ) )
337 CALL pvdimchk( ictxt, nout, n,
'X', ix, jx, descx, incx,
339 CALL pvdimchk( ictxt, nout, n,
'Y', iy, jy, descy, incy,
342 IF( ierr( 1 ).NE.0 .OR. ierr( 2 ).NE.0 )
347 CALL pslagen( .false.,
'None',
'No diag', 0, mx, nx, 1,
348 $ 1, descx, ixseed, mem( ipx ),
351 $
CALL pslagen( .false.,
'None',
'No diag', 0, my, ny,
352 $ 1, 1, descy, iyseed, mem( ipy ),
357 CALL blacs_barrier( ictxt,
'All' )
368 CALL psswap( n, mem( ipx ), ix, jx, descx, incx,
369 $ mem( ipy ), iy, jy, descy, incy )
372 ELSE IF( k.EQ.2 )
THEN
383 ELSE IF( k.EQ.3 )
THEN
390 CALL pscopy( n, mem( ipx ), ix, jx, descx, incx,
394 ELSE IF( k.EQ.4 )
THEN
402 $ incx, mem( ipy ), iy, jy, descy, incy )
405 ELSE IF( k.EQ.5 )
THEN
412 CALL psdot( n, psclr, mem( ipx ), ix, jx, descx, incx,
413 $ mem( ipy ), iy, jy, descy, incy )
416 ELSE IF( k.EQ.6 )
THEN
423 CALL psnrm2( n, pusclr, mem( ipx ), ix, jx, descx,
427 ELSE IF( k.EQ.7 )
THEN
434 CALL psasum( n, pusclr, mem( ipx ), ix, jx, descx,
438 ELSE IF( k.EQ.8 )
THEN
443 CALL psamax( n, psclr, pisclr, mem( ipx ), ix, jx,
453 $
WRITE( nout, fmt = 9985 ) info
457 CALL pb_combine( ictxt,
'All',
'>',
'W', 1, 1, wtime )
458 CALL pb_combine( ictxt,
'All',
'>',
'C', 1, 1, ctime )
470 IF( wtime( 1 ).GT.0.0d+0 )
THEN
471 wflops = nops / ( wtime( 1 ) * 1.0d+6 )
478 IF( ctime( 1 ).GT.0.0d+0 )
THEN
479 cflops = nops / ( ctime( 1 ) * 1.0d+6 )
484 WRITE( nout, fmt = 9984 ) snames( k ), wtime( 1 ),
485 $ wflops, ctime( 1 ), cflops
491 40
IF( iam.EQ.0 )
THEN
492 WRITE( nout, fmt = 9995 )
493 WRITE( nout, fmt = * )
494 WRITE( nout, fmt = 9988 ) j
500 WRITE( nout, fmt = * )
501 WRITE( nout, fmt = 9987 )
502 WRITE( nout, fmt = * )
511 9999
FORMAT(
'ILLEGAL ', a,
': ', a,
' = ', i10,
512 $ ' should be at least 1
' )
513 9998 FORMAT( 'illegal grid: nprow*npcol =
', I4,
514 $ '. it can be at most
', I4 )
515 9997 FORMAT( 'bad
', A, ' parameters: going on to next test case.
' )
516 9996 FORMAT( 2X, 'test number
', I2 , ' started on a
', I4, ' x
',
517 $ I4, ' process grid.
' )
518 9995 FORMAT( 2X, '---------------------
',
519 $ '--------------------------
' )
520 9994 FORMAT( 2X, ' n
',
521 $ ' mbx nbx rsrcx csrcx incx
' )
522 9993 FORMAT( 2X,I6,1X,I6,1X,I6,1X,I6,1X,I6,1X,I5,1X,I5,1X,I5,1X,I5,1X,
524 9992 FORMAT( 2X, ' n iy jy my ny imby inby
',
525 $ ' mby nby rsrcy csrcy incy
' )
526 9991 FORMAT( 'not enough
',
527 $ ' next test case.
' )
528 9990 FORMAT( 'not enough memory. need:
', I12 )
529 9988 FORMAT( 2X, 'test number ', i2,
' completed.' )
530 9987
FORMAT( 2x,
'End of Tests.' )
531 9986
FORMAT( 2x,
'Tests started.' )
532 9985
FORMAT' ***** Operation not supported, error code: ',
534 9984
FORMAT( 2x,
'| ', a, 2x, f13.3, 2x, f13.
535 9983
FORMAT( 2x,
' WALL time (s) WALL Mflops ',
536 $
' CPU time (s) CPU Mflops' )
544 $ IMBXVAL, MBXVAL, INBXVAL, NBXVAL,
545 $ RSCXVAL, CSCXVAL, IXVAL, JXVAL,
546 $ INCXVAL, MYVAL, NYVAL, IMBYVAL, MBYVAL,
547 $ INBYVAL, NBYVAL, RSCYVAL, CSCYVAL,
548 $ IYVAL, JYVAL, INCYVAL, LDVAL, NGRIDS,
549 $ PVAL, LDPVAL, QVAL, LDQVAL, LTEST, IAM,
550 $ NPROCS, ALPHA, WORK )
558 INTEGER IAM, LDPVAL, LDQVAL, LDVAL, NGRIDS, NMAT, NOUT,
563 CHARACTER*( * ) SUMMRY
565 INTEGER CSCXVAL( LDVAL ), CSCYVAL( LDVAL
567 $ inbxval( ldval ), inbyval( ldval ),
568 $ incxval( ldval ), incyval( ldval ),
569 $ ixval( ldval ), iyval( ldval ), jxval( ldval ),
570 $ jyval( ldval ), mbxval( ldval ),
571 $ mbyval( ldval ), mxval( ldval ),
572 $ myval( ldval ), nbxval( ldval ),
573 $ nbyval( ldval ), nval( ldval ), nxval( ldval ),
574 $ nyval( ldval ), pval( ldpval ), qval( ldqval ),
575 $ rscxval( ldval ), rscyval( ldval ), work( * )
769 PARAMETER ( NIN = 11, nsubs = 8 )
788 CHARACTER*7 SNAMES( NSUBS )
789 COMMON /SNAMEC/SNAMES
801 OPEN( nin, file=
'PSBLAS1TIM.dat', status=
'OLD' )
802 READ( nin, fmt = * ) summry
807 READ( nin, fmt = 9999 ) usrinfo
811 READ( nin, fmt = * ) summry
812 READ( nin, fmt = * ) nout
813 IF( nout.NE.0 .AND. nout.NE.6 )
814 $
OPEN( nout, file = summry, status =
'UNKNOWN' )
820 READ( nin, fmt = * ) ngrids
821 IF( ngrids.LT.1 .OR. ngrids.GT.ldpval )
THEN
822 WRITE( nout, fmt = 9998
'Grids', ldpval
824 ELSE IF( ngrids.GT.ldqval )
THEN
825 WRITE( nout, fmt = 9998 )
'Grids', ldqval
831 READ( nin, fmt = * ) ( pval( i ), i = 1, ngrids )
832 READ( nin, fmt = * ) ( qval( i ), i = 1, ngrids )
836 READ( nin, fmt = * ) alpha
840 READ( nin, fmt = * ) nmat
841 IF( nmat.LT.1 .OR. nmat.GT.ldval )
THEN
842 WRITE( nout, fmt = 9998 )
'Tests', ldval
848 READ( nin, fmt = * ) ( nval( i ), i = 1, nmat )
849 READ( nin, fmt = * ) ( mxval( i ), i = 1, nmat )
850 READ( nin, fmt = * ) ( nxval( i ), i = 1, nmat )
851 READ( nin, fmt = * ) ( imbxval( i ), i = 1, nmat )
852 READ( nin, fmt = * ) ( inbxval( i ), i = 1, nmat )
853 READ( nin, fmt = * ) ( mbxval( i ), i = 1, nmat )
854 READ( nin, fmt = * ) ( nbxval( i ), i = 1, nmat )
855 READ( nin, fmt = * ) ( rscxval( i ), i = 1, nmat )
856 READ( nin, fmt = * ) ( cscxval( i ), i = 1, nmat )
857 READ( nin, fmt = * ) ( ixval( i ), i = 1, nmat )
858 READ( nin, fmt = * ) ( jxval( i ), i = 1, nmat )
859 READ( nin, fmt = * ) ( incxval( i ), i = 1, nmat )
860 READ( nin, fmt = * ) ( myval( i ), i = 1, nmat )
861 READ( nin, fmt = * ) ( nyval( i ), i = 1, nmat )
862 READ( nin, fmt = * ) ( imbyval( i ), i = 1, nmat )
863 READ( nin, fmt = * ) ( inbyval( i ), i = 1, nmat )
864 READ( nin, fmt = * ) ( mbyval( i ), i = 1, nmat )
865 READ( nin, fmt = * ) ( nbyval( i ), i = 1, nmat )
866 READ( nin, fmt = * ) ( rscyval( i ), i = 1, nmat )
867 READ( nin, fmt = * ) ( cscyval( i ), i = 1, nmat )
868 READ( nin, fmt = * ) ( iyval( i ), i = 1, nmat )
869 READ( nin, fmt = * ) ( jyval( i ), i = 1, nmat )
870 READ( nin, fmt = * ) ( incyval( i ), i = 1, nmat )
879 READ( nin, fmt = 9996,
END = 50 ) SNAMET, ltestt
881 IF( snamet.EQ.snames( i ) )
885 WRITE( nout, fmt = 9995 )snamet
901 IF( nprocs.LT.1 )
THEN
904 nprocs =
max( nprocs, pval( i )*qval( i ) )
906 CALL blacs_setup( iam, nprocs )
912 CALL blacs_get( -1, 0, ictxt )
921 CALL igebs2d( ictxt,
'All',
' ', 2, 1, work, 2 )
924 CALL icopy( ngrids, pval, 1, work( i ), 1 )
926 CALL icopy( ngrids, qval, 1, work( i ), 1 )
928 CALL icopy( nmat, nval, 1, work( i ), 1 )
930 CALL icopy( nmat, mxval, 1, work( i ), 1 )
932 CALL icopy( nmat, nxval, 1, work( i ), 1 )
934 CALL icopy( nmat, imbxval, 1, work( i ), 1 )
936 CALL icopy( nmat, inbxval, 1, work( i ), 1 )
938 CALL icopy( nmat, mbxval, 1, work( i ), 1 )
940 CALL icopy( nmat, nbxval, 1, work( i ), 1 )
942 CALL icopy( nmat, rscxval, 1, work( i ), 1 )
944 CALL icopy( nmat, cscxval, 1, work( i ), 1 )
946 CALL icopy( nmat, ixval, 1, work( i ), 1 )
948 CALL icopy( nmat, jxval, 1, work( i ), 1 )
950 CALL icopy( nmat, incxval, 1, work( i ), 1 )
952 CALL icopy( nmat, myval, 1, work( i ), 1 )
954 CALL icopy( nmat, nyval, 1, work( i ), 1 )
956 CALL icopy( nmat, imbyval, 1, work( i ), 1 )
958 CALL icopy( nmat, inbyval, 1, work( i ), 1 )
960 CALL icopy( nmat, mbyval, 1, work( i ), 1 )
962 CALL icopy( nmat, nbyval, 1, work( i ), 1 )
964 CALL icopy( nmat, rscyval, 1, work( i ), 1 )
966 CALL icopy( nmat, cscyval, 1, work( i ), 1 )
968 CALL icopy( nmat, iyval, 1, work( i ), 1 )
970 CALL icopy( nmat, jyval, 1, work( i ), 1 )
972 CALL icopy( nmat, incyval, 1, work( i ), 1 )
976 IF( ltest( j ) )
THEN
984 CALL igebs2d( ictxt,
'All',
' ', i, 1, work, i )
988 WRITE( nout, fmt = 9999 )
989 $
'Level 1 PBLAS timing program.'
990 WRITE( nout, fmt = 9999 ) usrinfo
991 WRITE( nout, fmt = * )
992 WRITE( nout, fmt = 9999 )
993 $
'Timing of the real single precision '//
995 WRITE( nout, fmt = * )
996 WRITE( nout, fmt = 9999 )
997 $ '
the following
parameter values will be used:
'
998 WRITE( NOUT, FMT = * )
999 WRITE( NOUT, FMT = 9993 ) NMAT
1000 WRITE( NOUT, FMT = 9992 ) NGRIDS
1001 WRITE( NOUT, FMT = 9990 )
1002 $ 'p
', ( PVAL(I), I = 1, MIN(NGRIDS, 5) )
1004 $ WRITE( NOUT, FMT = 9991 ) ( PVAL(I), I = 6,
1005 $ MIN( 10, NGRIDS ) )
1007 $ WRITE( NOUT, FMT = 9991 ) ( PVAL(I), I = 11,
1008 $ MIN( 15, NGRIDS ) )
1010 $ WRITE( NOUT, FMT = 9991 ) ( PVAL(I), I = 16, NGRIDS )
1011 WRITE( NOUT, FMT = 9990 )
1012 $ 'q
', ( QVAL(I), I = 1, MIN(NGRIDS, 5) )
1014 $ WRITE( NOUT, FMT = 9991 ) ( QVAL(I), I = 6,
1015 $ MIN( 10, NGRIDS ) )
1017 $ WRITE( NOUT, FMT = 9991 ) ( QVAL(I), I = 11,
1018 $ MIN( 15, NGRIDS ) )
1020 $ WRITE( NOUT, FMT = 9991 ) ( QVAL(I), I = 16, NGRIDS )
1021 WRITE( NOUT, FMT = 9994 ) ALPHA
1022 IF( LTEST( 1 ) ) THEN
1023 WRITE( NOUT, FMT = 9989 ) SNAMES( 1 ), ' ... yes
'
1025 WRITE( NOUT, FMT = 9989 ) SNAMES( 1 ), ' ... no
'
1028 IF( LTEST( I ) ) THEN
1029 WRITE( NOUT, FMT = 9988 ) SNAMES( I ), ' ... yes
'
1031 WRITE( NOUT, FMT = 9988 ) SNAMES( I ), ' ... no
'
1034 WRITE( NOUT, FMT = * )
1041 $ CALL BLACS_SETUP( IAM, NPROCS )
1046 CALL BLACS_GET( -1, 0, ICTXT )
1047 CALL BLACS_GRIDINIT( ICTXT, 'row-major
', 1, NPROCS )
1049 CALL SGEBR2D( ICTXT, 'all
', ' ', 1, 1, ALPHA, 1, 0, 0 )
1051 CALL IGEBR2D( ICTXT, 'all
', ' ', 2, 1, WORK, 2, 0, 0 )
1055 I = 2*NGRIDS + 23*NMAT + NSUBS
1056 CALL IGEBR2D( ICTXT, 'all
', ' ', I, 1, WORK, I, 0, 0 )
1059 CALL ICOPY( NGRIDS, WORK( I ), 1, PVAL, 1 )
1061 CALL ICOPY( NGRIDS, WORK( I ), 1, QVAL, 1 )
1063 CALL ICOPY( NMAT, WORK( I ), 1, NVAL, 1 )
1065 CALL ICOPY( NMAT, WORK( I ), 1, MXVAL, 1 )
1067 CALL ICOPY( NMAT, WORK( I ), 1, NXVAL, 1 )
1069 CALL ICOPY( NMAT, WORK( I ), 1, IMBXVAL, 1 )
1071 CALL ICOPY( NMAT, WORK( I ), 1, INBXVAL, 1 )
1073 CALL ICOPY( NMAT, WORK( I ), 1, MBXVAL, 1 )
1075 CALL ICOPY( NMAT, WORK( I ), 1, NBXVAL, 1 )
1077 CALL ICOPY( NMAT, WORK( I ), 1, RSCXVAL, 1 )
1079 CALL ICOPY( NMAT, WORK( I ), 1, CSCXVAL, 1 )
1081 CALL ICOPY( NMAT, WORK( I ), 1, IXVAL, 1 )
1083 CALL ICOPY( NMAT, WORK( I ), 1, JXVAL, 1 )
1085 CALL ICOPY( NMAT, WORK( I ), 1, INCXVAL, 1 )
1087 CALL ICOPY( NMAT, WORK( I ), 1, MYVAL, 1 )
1089 CALL ICOPY( NMAT, WORK( I ), 1, NYVAL, 1 )
1091 CALL ICOPY( NMAT, WORK( I ), 1, IMBYVAL, 1 )
1093 CALL ICOPY( NMAT, WORK( I ), 1, INBYVAL, 1 )
1095 CALL ICOPY( NMAT, WORK( I ), 1, MBYVAL, 1 )
1097 CALL ICOPY( NMAT, WORK( I ), 1, NBYVAL, 1 )
1099 CALL ICOPY( NMAT, WORK( I ), 1, RSCYVAL, 1 )
1101 CALL ICOPY( NMAT, WORK( I ), 1, CSCYVAL, 1 )
1103 CALL ICOPY( NMAT, WORK( I ), 1, IYVAL, 1 )
1105 CALL ICOPY( NMAT, WORK( I ), 1, JYVAL, 1 )
1107 CALL ICOPY( NMAT, WORK( I ), 1, INCYVAL, 1 )
1111.EQ.
IF( WORK( I )1 ) THEN
1114 LTEST( J ) = .FALSE.
1121 CALL BLACS_GRIDEXIT( ICTXT )
1125 100 WRITE( NOUT, FMT = 9997 )
1127.NE..AND..NE.
IF( NOUT6 NOUT0 )
1129 CALL BLACS_ABORT( ICTXT, 1 )
1134 9998 FORMAT( ' number of values of
',5A, ' is less than 1 or greater
',
1136 9997 FORMAT( ' illegal input in file
',40A,'. aborting run.
' )
1137 9996 FORMAT( A7, L2 )
1138 9995 FORMAT( ' subprogram name
', A7, ' not recognized
',
1139 $ /' ******* tests abandoned *****
' )
1140 9994 FORMAT( 2X, 'alpha ', G16.6 )
1141 9993 FORMAT( 2X, 'number of tests :
', I6 )
1142 9992 FORMAT( 2X, 'number of process grids :
', I6 )
1143 9991 FORMAT( 2X, ' :
', 5I6 )
1144 9990 FORMAT( 2X, A1, ' :
', 5I6 )
1145 9989 FORMAT( 2X, 'routines to be tested :
', A, A8 )
1146 9988 FORMAT( 2X, ' ', A, A8 )
end diagonal values have been computed in the(sparse) matrix id.SOL
subroutine icopy(n, sx, incx, sy, incy)
ICOPY
subroutine sgebs2d(contxt, scope, top, m, n, a, lda)
subroutine blacs_gridinit(cntxt, c, nprow, npcol)
subroutine psnrm2(n, norm2, x, ix, jx, descx, incx)
subroutine sgebr2d(contxt, scope, top, m, n, a, lda)
subroutine psscal(n, alpha, x, ix, jx, descx, incx)
subroutine psdot(n, dot, x, ix, jx, descx, incx, y, iy, jy, descy, incy)
subroutine blacs_gridexit(cntxt)
subroutine blacs_gridinfo(cntxt, nprow, npcol, myrow, mycol)
subroutine psaxpy(n, a, x, ix, jx, descx, incx, y, iy, jy, descy, incy)
for(i8=*sizetab-1;i8 >=0;i8--)
subroutine pb_combine(ictxt, scope, op, tmtype, n, ibeg, times)
subroutine pvdimchk(ictxt, nout, n, matrix, ix, jx, descx, incx, info)
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 psbla1timinfo(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 pslagen(inplace, aform, diag, offa, m, n, ia, ja, desca, iaseed, a, lda)