3 SUBROUTINE pzseptst( DESCA, UPLO, N, MATTYPE, SUBTESTS, THRESH,
4 $ ORDER, ABSTOL, ISEED, A, COPYA, Z, LDA, WIN,
5 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD, IPOSTPAD,
6 $ WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK,
15 CHARACTER SUBTESTS, UPLO
16 INTEGER INFO, IPOSTPAD, IPREPAD, LDA, LIWORK, LRWORK,
17 $ LWORK, MATTYPE, N, NOUT, ORDER
18 DOUBLE PRECISION ABSTOL, THRESH
21 INTEGER DESCA( * ), ICLUSTR( * ), IFAIL( * ),
22 $ iseed( 4 ), iwork( * )
23 DOUBLE PRECISION GAP( * ), RWORK( * ), WIN( * ), WNEW( * )
24 COMPLEX*16 A( LDA, * ), COPYA( LDA, * ), WORK( * ),
205 INTEGER BLOCK_CYCLIC_2D, DLEN_, DTYPE_, CTXT_, M_, N_,
206 $ MB_, NB_, RSRC_, CSRC_, LLD_
207 PARAMETER ( BLOCK_CYCLIC_2D = 1, dlen_ = 9, dtype_ = 1,
208 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
209 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
210 DOUBLE PRECISION ZERO, ONE, TEN, HALF
211 parameter( zero = 0.0d+0, one = 1.0d+0, ten = 10.0d+0,
214 parameter( padval = ( 19.25d+0, 1.1d+1 ) )
216 PARAMETER ( ZZERO = ( 0.0d+0, 0.0d+0 ) )
218 parameter( zone = ( 1.0d+0, 0.0d+0 ) )
220 parameter( maxtyp = 22 )
225 CHARACTER JOBZ, RANGE
227 INTEGER CONTEXT, I, IAM, IINFO, IL, IMODE, IN, INDD,
228 $ indrwork, indwork, isizeheevx, isizesubtst,
229 $ isizetst, itype, iu, j, lheevxsize, llrwork,
230 $ llwork, maxsize, mycol, myrow, nb, ngen, nloc,
231 $ nnodes, np, npcol, nprow, nq, res, rsizechk,
232 $ rsizeheevx, rsizeqtq, rsizesubtst, rsizetst,
233 $ sizeheevx, sizemqrleft, sizemqrright, sizeqrf,
234 $ sizesubtst, sizetms, sizetst, valsize, vecsize,
235 $ sizeheevd, rsizeheevd, isizeheevd, nq0, np0,
237 DOUBLE PRECISION ANINV, ANORM, COND, MAXQTQNRM, MAXTSTNRM, OVFL,
238 $ QTQNRM, RTOVFL, RTUNFL, TEMP1, TSTNRM, ULP,
239 $ ULPINV, UNFL, VL, VU
242 INTEGER ISEEDIN( 4 ), KMAGN( MAXTYP ), KMODE( MAXTYP ),
244 DOUBLE PRECISION CTIME( 10 ), WTIME( 10 )
249 DOUBLE PRECISION DLARAN, PDLAMCH
250 EXTERNAL LSAME, NUMROC, DLARAN, PDLAMCH
253 EXTERNAL blacs_gridinfo, blacs_pinfo, dlabad, dlasrt,
260 INTRINSIC abs, dble, int,
max,
min, sqrt
263 DATA ktype / 1, 2, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 8,
264 $ 8, 8, 9, 9, 9, 9, 9, 10, 11 /
265 DATA kmagn / 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 2, 3, 1,
266 $ 2, 3, 1, 1, 1, 2, 3, 1, 1 /
267 DATA kmode / 0, 0, 4, 3, 1, 4, 4, 4, 3, 1, 4, 4, 0,
268 $ 0, 0, 4, 3, 1, 4, 4, 3, 0 /
272 IF( block_cyclic_2d*csrc_*ctxt_*dlen_*dtype_*lld_*mb_*m_*nb_*n_*
276 passed =
'PASSED EVX'
277 context = desca( ctxt_ )
280 CALL blacs_pinfo( iam, nnodes )
281 CALL blacs_gridinfo( context, nprow, npcol, myrow, mycol )
287 CALL pzlasizesep( desca, iprepad, ipostpad, sizemqrleft,
288 $ sizemqrright, sizeqrf, sizetms, rsizeqtq,
289 $ rsizechk, sizeheevx, rsizeheevx, isizeheevx,
290 $ sizeheevd, rsizeheevd, isizeheevd,
291 $ sizesubtst, rsizesubtst, isizesubtst, sizetst,
292 $ rsizetst, isizetst )
294 IF( lrwork.LT.rsizetst )
THEN
298 CALL igamx2d( context,
'a',
' ', 1, 1, info, 1, 1, 1, -1, -1, 0 )
305 llwork = lwork - indwork + 1
306 llrwork = lrwork - indrwork + 1
308 ulp = pdlamch( context,
'P' )
310 unfl = pdlamch( context,
'Safe min' )
312 CALL dlabad( unfl, ovfl )
313 rtunfl = sqrt( unfl )
314 rtovfl = sqrt( ovfl )
315 aninv = one / dble(
max( 1, n ) )
319 IF( myrow.EQ.0 .AND. mycol.EQ.0 )
THEN
320 CALL igebs2d( context,
'a',
' ', 4, 1, iseed, 4 )
322 CALL igebr2d( context,
'a',
' ', 4, 1, iseed, 4, 0, 0 )
324 iseedin( 1 ) = iseed( 1 )
325 iseedin( 2 ) = iseed( 2 )
326 iseedin( 3 ) = iseed( 3 )
327 iseedin( 4 ) = iseed( 4 )
346 itype = ktype( mattype )
347 imode = kmode( mattype )
351 GO TO ( 10, 20, 30 )kmagn( mattype )
358 anorm = ( rtovfl*ulp )*aninv
362 anorm = rtunfl*n*ulpinv
366 IF( mattype.LE.15 )
THEN
369 cond = ulpinv*aninv / ten
377 IF( itype.EQ.1 )
THEN
382 rwork( indd+i-1 ) = zero
384 CALL pzlaset(
'All', n, n, zzero, zzero, copya, 1, 1,
388 ELSE IF( itype.EQ.2 )
THEN
393 rwork( indd+i-1 ) = one
395 CALL pzlaset(
'All', n, n, zzero, zone, copya, 1, 1, desca )
398 ELSE IF( itype.EQ.4 )
THEN
402 CALL pzfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
403 $ sizetms, iprepad, ipostpad, padval+1.0d+0 )
405 CALL pzlatms( n, n,
'S', iseed,
'S', rwork( indd ), imode,
406 $ cond, anorm, 0, 0,
'N', copya, 1, 1, desca,
407 $ order, work( indwork+iprepad ), sizetms,
411 CALL pzchekpad( desca( ctxt_ ),
'PZLATMS1-WORK', sizetms, 1,
412 $ work( indwork ), sizetms, iprepad, ipostpad,
415 ELSE IF( itype.EQ.5 )
THEN
419 CALL pzfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
420 $ sizetms, iprepad, ipostpad, padval+2.0d+0 )
422 CALL pzlatms( n, n,
'S', iseed,
'S', rwork( indd ), imode,
423 $ cond, anorm, n, n,
'N', copya, 1, 1, desca,
424 $ order, work( indwork+iprepad ), sizetms,
427 CALL pzchekpad( desca( ctxt_ ),
'PZLATMS2-WORK', sizetms, 1,
428 $ work( indwork ), sizetms, iprepad, ipostpad,
433 ELSE IF( itype.EQ.8 )
THEN
437 np = numroc( n, desca( mb_ ), myrow, 0, nprow )
438 nq = numroc( n, desca( nb_ ), mycol, 0, npcol )
439 CALL pzmatgen( desca( ctxt_ ),
'H',
'N', n, n, desca( mb_ ),
440 $ desca( nb_ ), copya, desca( lld_ ),
441 $ desca( rsrc_ ), desca( csrc_ ), iseed( 1 ),
442 $ 0, np, 0, nq, myrow, mycol, nprow, npcol )
446 ELSE IF( itype.EQ.9 )
THEN
451 CALL pzfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
452 $ sizetms, iprepad, ipostpad, padval+3.0d+0 )
454 CALL pzlatms( n, n,
'S', iseed,
'S', rwork( indd ), imode,
455 $ cond, anorm, n, n,
'N', copya, 1, 1, desca,
456 $ order, work( indwork+iprepad ), sizetms,
461 CALL pzchekpad( desca( ctxt_ ),
'PZLATMS3-WORK', sizetms, 1,
462 $ work( indwork ), sizetms, iprepad, ipostpad,
465 ELSE IF( itype.EQ.10 )
THEN
470 CALL pzlaset(
'All', n, n, zzero, zzero, copya, 1, 1,
472 np = numroc( n, desca( mb_ ), 0, 0, nprow )
473 nq = numroc( n, desca( nb_ ), 0, 0, npcol )
479 in =
min( 1+int( dlaran( iseed )*dble( nloc ) ), n-ngen )
481 CALL zlatms( in, in,
'S', iseed,
'P', rwork( indd ),
482 $ imode, cond, anorm, 1, 1,
'N', a, lda,
483 $ work( indwork ), iinfo )
486 temp1 = abs( a( i-1, i ) ) /
487 $ sqrt( abs( a( i-1, i-1 )*a( i, i ) ) )
488 IF( temp1.GT.half )
THEN
489 a( i-1, i ) = half*sqrt( abs( a( i-1, i-1 )*a( i,
491 a( i, i-1 ) = a( i-1, i )
494 CALL pzelset( copya, ngen+1, ngen+1, desca, a( 1, 1 ) )
496 CALL pzelset( copya, ngen+i, ngen+i, desca,
498 CALL pzelset( copya, ngen+i-1, ngen+i, desca,
500 CALL pzelset( copya, ngen+i, ngen+i-1, desca,
508 ELSE IF( itype.EQ.11 )
THEN
517 in =
min( j, n-ngen )
519 rwork( indd+ngen+i ) = temp1
528 CALL pzfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
529 $ sizetms, iprepad, ipostpad, padval+4.0d+0 )
531 CALL pzlatms( n, n,
'S', iseed,
'S', rwork( indd ), imode,
532 $ cond, anorm, 0, 0,
'N', copya, 1, 1, desca,
533 $ order, work( indwork+iprepad ), sizetms,
536 CALL pzchekpad( desca( ctxt_ ),
'PZLATMS4-WORK', sizetms, 1,
537 $ work( indwork ), sizetms, iprepad, ipostpad,
549 $
CALL dlasrt(
'I', n, rwork( indd ), iinfo )
560 $ iseed, rwork( indd ), maxsize, vecsize,
563 lheevxsize =
min( maxsize, llrwork )
565 CALL pzsepsubtst( wknown,
'v',
'a', uplo, n, vl, vu, il, iu,
566 $ thresh, abstol, a, copya, z, 1, 1, desca,
567 $ rwork( indd ), win, ifail, iclustr, gap,
568 $ iprepad, ipostpad, work( indwork ), llwork,
569 $ rwork( indrwork ), llrwork, lheevxsize,
570 $ iwork, isizeheevx, res, tstnrm, qtqnrm,
579 IF( thresh.LE.zero )
THEN
582 ELSE IF( res.NE.0 )
THEN
588 IF( thresh.GT.zero .AND. lsame( subtests,
'Y' ) )
THEN
597 $ iseed, win( 1+iprepad ), maxsize,
602 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
603 $ iu, thresh, abstol, a, copya, z, 1, 1,
604 $ desca, win( 1+iprepad ), wnew, ifail,
605 $ iclustr, gap, iprepad, ipostpad,
606 $ work( indwork ), llwork, rwork, lrwork,
607 $ lheevxsize, iwork, isizeheevx, res,
608 $ tstnrm, qtqnrm, nout )
611 passed =
'FAILED stest 1'
612 maxtstnrm =
max( tstnrm, maxtstnrm )
613 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
624 $ iseed, win( 1+iprepad ), maxsize,
627 lheevxsize = vecsize + int( dlaran( iseed )*
628 $ dble( maxsize-vecsize ) )
630 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
631 $ iu, thresh, abstol, a, copya, z, 1, 1,
632 $ desca, win( 1+iprepad ), wnew, ifail,
633 $ iclustr, gap, iprepad, ipostpad,
634 $ work( indwork ), llwork, rwork, lrwork,
635 $ lheevxsize, iwork, isizeheevx, res,
636 $ tstnrm, qtqnrm, nout )
639 passed =
'FAILED stest 2'
640 maxtstnrm =
max( tstnrm, maxtstnrm )
641 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
653 $ iseed, win( 1+iprepad ), maxsize,
657 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
658 $ iu, thresh, abstol, a, copya, z, 1, 1,
659 $ desca, win( 1+iprepad ), wnew, ifail,
660 $ iclustr, gap, iprepad, ipostpad,
661 $ work( indwork ), llwork, rwork, lrwork,
662 $ lheevxsize, iwork, isizeheevx, res,
663 $ tstnrm, qtqnrm, nout )
666 maxtstnrm =
max( tstnrm, maxtstnrm )
667 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
668 passed =
'FAILED stest 3'
685 $ iseed, win( 1+iprepad ), maxsize,
690 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
691 $ iu, thresh, abstol, a, copya, z, 1, 1,
692 $ desca, win( 1+iprepad ), wnew, ifail,
693 $ iclustr, gap, iprepad, ipostpad,
694 $ work( indwork ), llwork, rwork, lrwork,
695 $ lheevxsize, iwork, isizeheevx, res,
696 $ tstnrm, qtqnrm, nout )
699 maxtstnrm =
max( tstnrm, maxtstnrm )
700 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
701 passed =
'FAILED stest 4'
718 $ iseed, win( 1+iprepad ), maxsize,
723 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
724 $ iu, thresh, abstol, a, copya, z, 1, 1,
725 $ desca, win( 1+iprepad ), wnew, ifail,
726 $ iclustr, gap, iprepad, ipostpad,
727 $ work( indwork ), llwork, rwork, lrwork,
728 $ lheevxsize, iwork, isizeheevx, res,
729 $ tstnrm, qtqnrm, nout )
732 maxtstnrm =
max( tstnrm, maxtstnrm )
733 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
734 passed =
'FAILED stest 5'
750 $ iseed, win( 1+iprepad ), maxsize,
755 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
756 $ iu, thresh, abstol, a, copya, z, 1, 1,
757 $ desca, win( 1+iprepad ), wnew, ifail,
758 $ iclustr, gap, iprepad, ipostpad,
759 $ work( indwork ), llwork, rwork, lrwork,
760 $ lheevxsize, iwork, isizeheevx, res,
761 $ tstnrm, qtqnrm, nout )
764 maxtstnrm =
max( tstnrm, maxtstnrm )
765 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
766 passed =
'FAILED stest 6'
782 $ iseed, win( 1+iprepad ), maxsize,
784 lheevxsize = vecsize + int( dlaran( iseed )*
785 $ dble( maxsize-vecsize ) )
787 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
788 $ iu, thresh, abstol, a, copya, z, 1, 1,
789 $ desca, win( 1+iprepad ), wnew, ifail,
790 $ iclustr, gap, iprepad, ipostpad,
791 $ work( indwork ), llwork, rwork, lrwork,
792 $ lheevxsize, iwork, isizeheevx, res,
793 $ tstnrm, qtqnrm, nout )
796 maxtstnrm =
max( tstnrm, maxtstnrm )
797 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
798 passed =
'FAILED stest 7'
814 $ iseed, win( 1+iprepad ), maxsize,
819 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
820 $ iu, thresh, abstol, a, copya, z, 1, 1,
821 $ desca, win( 1+iprepad ), wnew, ifail,
822 $ iclustr, gap, iprepad, ipostpad,
823 $ work( indwork ), llwork, rwork, lrwork,
824 $ lheevxsize, iwork, isizeheevx, res,
825 $ tstnrm, qtqnrm, nout )
828 maxtstnrm =
max( tstnrm, maxtstnrm )
829 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
830 passed =
'FAILED stest 8'
846 $ iseed, win( 1+iprepad ), maxsize,
851 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
852 $ iu, thresh, abstol, a, copya, z, 1, 1,
853 $ desca, win( 1+iprepad ), wnew, ifail,
854 $ iclustr, gap, iprepad, ipostpad,
855 $ work( indwork ), llwork, rwork, lrwork,
856 $ lheevxsize, iwork, isizeheevx, res,
857 $ tstnrm, qtqnrm, nout )
860 maxtstnrm =
max( tstnrm, maxtstnrm )
861 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
862 passed =
'FAILED stest 9'
879 $ iseed, win( 1+iprepad ), maxsize,
884 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
885 $ iu, thresh, abstol, a, copya, z, 1, 1,
886 $ desca, win( 1+iprepad ), wnew, ifail,
887 $ iclustr, gap, iprepad, ipostpad,
888 $ work( indwork ), llwork, rwork, lrwork,
889 $ lheevxsize, iwork, isizeheevx, res,
890 $ tstnrm, qtqnrm, nout )
893 maxtstnrm =
max( tstnrm, maxtstnrm )
894 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
895 passed =
'FAILED stest10'
913 $ iseed, win( 1+iprepad ), maxsize,
917 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
918 $ iu, thresh, abstol, a, copya, z, 1, 1,
919 $ desca, win( 1+iprepad ), wnew, ifail,
920 $ iclustr, gap, iprepad, ipostpad,
921 $ work( indwork ), llwork, rwork, lrwork,
922 $ lheevxsize, iwork, isizeheevx, res,
923 $ tstnrm, qtqnrm, nout )
926 maxtstnrm =
max( tstnrm, maxtstnrm )
927 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
928 passed =
'FAILED stest11'
945 $ iseed, win( 1+iprepad ), maxsize,
950 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
951 $ iu, thresh, abstol, a, copya, z, 1, 1,
952 $ desca, win( 1+iprepad ), wnew, ifail,
953 $ iclustr, gap, iprepad, ipostpad,
954 $ work( indwork ), llwork, rwork, lrwork,
955 $ lheevxsize, iwork, isizeheevx, res,
956 $ tstnrm, qtqnrm, nout )
959 maxtstnrm =
max( tstnrm, maxtstnrm )
960 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
961 passed =
'FAILED stest12'
979 $ iseed, win( 1+iprepad ), maxsize,
983 CALL pzsepsubtst( .true., jobz, range, uplo, n, vl, vu, il,
984 $ iu, thresh, abstol, a, copya, z, 1, 1,
985 $ desca, win( 1+iprepad ), wnew, ifail,
986 $ iclustr, gap, iprepad, ipostpad,
987 $ work( indwork ), llwork, rwork, lrwork,
988 $ lheevxsize, iwork, isizeheevx, res,
989 $ tstnrm, qtqnrm, nout )
992 maxtstnrm =
max( tstnrm, maxtstnrm )
993 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
994 passed =
'FAILED stest13'
1002 CALL igamx2d( context,
'All',
' ', 1, 1, info, 1, -1, -1, -1, -1,
1005 IF( info.EQ.1 )
THEN
1007 WRITE( nout, fmt = 9994 )
'C '
1008 WRITE( nout, fmt = 9993 )iseedin( 1 )
1009 WRITE( nout, fmt = 9992 )iseedin( 2 )
1010 WRITE( nout, fmt = 9991 )iseedin( 3 )
1011 WRITE( nout, fmt = 9990 )iseedin( 4 )
1012 IF( lsame( uplo,
'L' ) )
THEN
1013 WRITE( nout, fmt = 9994 )
' UPLO= ''L'' '
1015 WRITE( nout, fmt = 9994 )
' UPLO= ''U'' '
1017 IF( lsame( subtests,
'Y' ) )
THEN
1018 WRITE( nout, fmt = 9994 )
' SUBTESTS= ''Y'' '
1020 WRITE( nout, fmt = 9994 )
' SUBTESTS= ''N'' '
1022 WRITE( nout, fmt = 9989 )n
1023 WRITE( nout, fmt = 9988 )nprow
1024 WRITE( nout, fmt = 9987 )npcol
1025 WRITE( nout, fmt = 9986 )nb
1026 WRITE( nout, fmt = 9985 )mattype
1027 WRITE( nout, fmt = 9982 )abstol
1028 WRITE( nout, fmt = 9981 )thresh
1029 WRITE( nout, fmt = 9994 )
'C '
1033 CALL slcombine( context,
'All',
'>',
'W', 6, 1, wtime )
1034 CALL slcombine( context,
'All',
'>',
'C', 6, 1, ctime )
1036 IF( info.EQ.0 .OR. info.EQ.1 )
THEN
1037 IF( wtime( 1 ).GE.0.0 )
THEN
1038 WRITE( nout, fmt = 9999 )n, nb, nprow, npcol, mattype,
1039 $ subtests, wtime( 1 ), ctime( 1 ), maxtstnrm,
1042 WRITE( nout, fmt = 9998 )n, nb, nprow, npcol, mattype,
1043 $ subtests, ctime( 1 ), maxtstnrm, maxqtqnrm, passed
1045 ELSE IF( info.EQ.2 )
THEN
1046 IF( wtime( 1 ).GE.0.0 )
THEN
1047 WRITE( nout, fmt = 9997 )n, nb, nprow, npcol, mattype,
1048 $ subtests, wtime( 1 ), ctime( 1 )
1050 WRITE( nout, fmt = 9996 )n, nb, nprow, npcol, mattype,
1051 $ subtests, ctime( 1 )
1053 ELSE IF( info.EQ.3 )
THEN
1054 WRITE( nout, fmt = 9995 )n, nb, nprow, npcol, mattype,
1061 passed =
'PASSED EEVD'
1065 IF( info.EQ.0 )
THEN
1067 np0 = numroc( n, nb, 0, 0, nprow )
1068 nq0 = numroc(
max( n, 1 ), nb, 0, 0, npcol )
1069 lheevdsize = 1 + 9*n + 3*np0*nq0
1070 isizeheevd =
max( 1, 2+7*n+8*npcol )
1072 CALL pzsdpsubtst( wknown, uplo, n, thresh, abstol, a, copya, z,
1073 $ 1, 1, desca, win, wnew, iprepad, ipostpad,
1074 $ work( indwork ), llwork, rwork, lrwork,
1075 $ lheevdsize, iwork, isizeheevd, res, tstnrm,
1082 passed =
'FAILED EEVD'
1089 CALL igamx2d( context,
'All',
' ', 1, 1, info, 1, -1, -1, -1, -1,
1092 IF( info.EQ.1 )
THEN
1094 WRITE( nout, fmt = 9994 )
'C '
1095 WRITE( nout, fmt = 9993 )iseedin( 1 )
1096 WRITE( nout, fmt = 9992 )iseedin( 2 )
1097 WRITE( nout, fmt = 9991 )iseedin( 3 )
1098 WRITE( nout, fmt = 9990 )iseedin( 4 )
1099 IF( lsame( uplo,
'L' ) )
THEN
1100 WRITE( nout, fmt = 9994 )
' UPLO= ''L'' '
1102 WRITE( nout, fmt = 9994 )
' UPLO= ''U'' '
1104 IF( lsame( subtests,
'Y' ) )
THEN
1105 WRITE( nout, fmt = 9994 )
' SUBTESTS= ''Y'' '
1107 WRITE( nout, fmt = 9994 )
' SUBTESTS= ''N'' '
1109 WRITE( nout, fmt = 9989 )n
1110 WRITE( nout, fmt = 9988 )nprow
1111 WRITE( nout, fmt = 9987 )npcol
1112 WRITE( nout, fmt = 9986 )nb
1113 WRITE( nout, fmt = 9985 )mattype
1114 WRITE( nout, fmt = 9982 )abstol
1115 WRITE( nout, fmt = 9981 )thresh
1116 WRITE( nout, fmt = 9994 )
'C '
1120 CALL slcombine( context,
'All',
'>',
'W', 6, 1, wtime )
1121 CALL slcombine( context,
'All',
'>',
'C', 6, 1, ctime )
1123 IF( info.EQ.0 .OR. info.EQ.1 )
THEN
1124 IF( wtime( 1 ).GE.0.0 )
THEN
1125 WRITE( nout, fmt = 9999 )n, nb, nprow, npcol, mattype,
1126 $ subtests, wtime( 1 ), ctime( 1 ), maxtstnrm,
1129 WRITE( nout, fmt = 9998 )n, nb, nprow, npcol, mattype,
1130 $ subtests, ctime( 1 ), maxtstnrm, maxqtqnrm, passed
1132 ELSE IF( info.EQ.2 )
THEN
1133 IF( wtime( 1 ).GE.0.0 )
THEN
1134 WRITE( nout, fmt = 9997 )n, nb, nprow, npcol, mattype,
1135 $ subtests, wtime( 1 ), ctime( 1 )
1137 WRITE( nout, fmt = 9996 )n, nb, nprow, npcol, mattype,
1138 $ subtests, ctime( 1 )
1140 ELSE IF( info.EQ.3 )
THEN
1141 WRITE( nout, fmt = 9995 )n, nb, nprow, npcol, mattype,
1148 9999
FORMAT( 1x, i5, 1x, i3, 1x, i3, 1x, i3, 1x, i3, 3x, a1, 1x, f8.2,
1149 $ 1x, f8.2, 1x, g9.2, 1x, g9.2, 1x, a14 )
1150 9998
FORMAT( 1x, i5, 1x, i3, 1x, i3, 1x, i3, 1x, i3, 3x, a1, 1x, 8x,
1151 $ 1x, f8.2, 1x, g9.2, 1x, g9.2, a14 )
1152 9997
FORMAT( 1x, i5, 1x, i3, 1x, i3, 1x, i3, 1x, i3, 3x, a1, 1x, f8.2,
1153 $ 1x, f8.2, 21x,
'Bypassed' )
1154 9996
FORMAT( 1x, i5, 1x, i3, 1x, i3, 1x, i3, 1x, i3, 3x, a1, 1x, 8x,
1155 $ 1x, f8.2, 21x,
'Bypassed' )
1156 9995
FORMAT( 1x, i5, 1x, i3, 1x, i3, 1x, i3, 1x, i3, 3x, a1, 32x,
1157 $
'Bad MEMORY parameters' )
1159 9993
FORMAT(
' ISEED( 1 ) =', i8 )
1160 9992
FORMAT(
' ISEED( 2 ) =', i8 )
1161 9991
FORMAT(
' ISEED( 3 ) =', i8 )
1162 9990
FORMAT(
' ISEED( 4 ) =', i8 )
1163 9989
FORMAT(
' N=', i8 )
1164 9988
FORMAT(
' NPROW=', i8 )
1165 9987
FORMAT(
' NPCOL=', i8 )
1166 9986
FORMAT(
' NB=', i8 )
1167 9985
FORMAT(
' MATTYPE=', i8 )
1168 9984
FORMAT(
' IBTYPE=', i8 )
1169 9983
FORMAT(
' SUBTESTS=', a1 )
1170 9982
FORMAT(
' ABSTOL=', d16.6 )
1171 9981
FORMAT(
' THRESH=', d16.6 )
1172 9980
FORMAT(
' Increase TOTMEM in PZSEPDRIVER' )