3 SUBROUTINE pcgseptst( DESCA, UPLO, N, MATTYPE, IBTYPE, SUBTESTS,
4 $ THRESH, ORDER, ABSTOL, ISEED, A, COPYA, B,
5 $ COPYB, Z, LDA, WIN, WNEW, IFAIL, ICLUSTR,
6 $ GAP, IPREPAD, IPOSTPAD, WORK, LWORK, RWORK,
7 $ LRWORK, IWORK, LIWORK, NOUT, INFO )
15 CHARACTER SUBTESTS, UPLO
16 INTEGER IBTYPE, INFO, IPOSTPAD, IPREPAD, LDA, LIWORK,
17 $ LRWORK, LWORK, MATTYPE, N, NOUT, ORDER
21 INTEGER DESCA( * ), ICLUSTR( * ), IFAIL( * ),
22 $ iseed( 4 ), iwork( * )
23 REAL GAP( * ), RWORK( * ), ( * ), WNEW( * )
24 COMPLEX A( LDA, * ), B( LDA, * ), COPYA( LDA, * ),
25 $ copyb( lda, * ), work( * ), z( lda, * )
218 INTEGER BLOCK_CYCLIC_2D, DLEN_, DTYPE_, CTXT_, M_, N_,
220PARAMETER ( = 1, dlen_ = 9, dtype_ = 1,
221 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
222 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
223 REAL ZERO, ONE, , HALF
224 parameter( zero = 0.0e+0, one = 1.0e+0, ten = 10.0e+0,
227 parameter( padval = ( 19.25e+0, 1.1e+1 ) )
229 PARAMETER ( CZERO = ( 0.0e+0, 0.0e+0 ) )
231 parameter( cone = ( 1.0e+0, 0.0e+0 ) )
233 PARAMETER ( maxtyp = 22 )
238 CHARACTER JOBZ, RANGE
240 INTEGER CONTEXT, I, IAM, IINFO, IL, IMODE, IN, INDD,
241 $ indrwork, indwork, isizeheevx, isizesubtst,
242 $ isizetst, itype, iu, j, lheevxsize, llrwork,
243 $ llwork, maxsize, mycol, myrow, nb, ngen, nloc,
244 $ nnodes, np, npcol, nprow, nq, res, rsizechk,
245 $ rsizeheevx, rsizeqtq, rsizesubtst, rsizetst,
246 $ sizeheevx, sizemqrleft, sizemqrright, sizeqrf,
247 $ sizesubtst, sizetms, sizetst, valsize, vecsize
248 REAL ANINV, ANORM, COND, MAXQTQNRM, MAXTSTNRM
253 INTEGER ISEEDIN( 4 ), KMAGN( MAXTYP ), KMODE( MAXTYP ),
255 DOUBLE PRECISION CTIME( 10 ), WTIME( 10 )
261 EXTERNAL LSAME, NUMROC, PSLAMCH, SLARAN
271 INTRINSIC abs, int,
max,
min, mod, real, sqrt
274 DATA ktype / 1, 2, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 8,
275 $ 8, 8, 9, 9, 9, 9, 9, 10, 11 /
276 DATA kmagn / 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 2, 3, 1,
277 $ 2, 3, 1, 1, 1, 2, 3, 1, 1 /
278 DATA kmode / 0, 0, 4, 3, 1, 4, 4, 4, 3, 1, 4, 4, 0,
279 $ 0, 0, 4, 3, 1, 4, 4, 3, 0 /
283 IF( block_cyclic_2d*csrc_*ctxt_*dlen_*dtype_*lld_*mb_*m_*nb_*n_*
288 context = desca( ctxt_ )
291 CALL blacs_pinfo( iam, nnodes )
298 CALL pclasizegsep( desca, iprepad, ipostpad, sizemqrleft,
299 $ sizemqrright, sizeqrf, sizetms, rsizeqtq,
300 $ rsizechk, sizeheevx, rsizeheevx, isizeheevx,
301 $ sizesubtst, rsizesubtst, isizesubtst, sizetst,
302 $ rsizetst, isizetst )
304 IF( lrwork.LT.rsizetst )
THEN
308 CALL igamx2d( context,
'a',
' ', 1, 1, info, 1, 1, 1, -1, -1, 0 )
315 llwork = lwork - indwork + 1
316 llrwork = lrwork - indrwork + 1
318 ulp = pslamch( context,
'P' )
320 unfl = pslamch( context,
'Safe min' )
323 rtunfl = sqrt( unfl )
324 rtovfl = sqrt( ovfl )
325 aninv = one / real(
max( 1, n ) )
329 IF( myrow.EQ.0 .AND. mycol.EQ.0 )
THEN
330 CALL igebs2d( context,
'a',
' ', 4, 1, iseed, 4 )
332 CALL igebr2d( context,
'a',
' ', 4, 1, iseed, 4, 0, 0 )
334 iseedin( 1 ) = iseed( 1 )
335 iseedin( 2 ) = iseed( 2 )
336 iseedin( 3 ) = iseed( 3 )
337 iseedin( 4 ) = iseed( 4 )
356 itype = ktype( mattype )
357 imode = kmode( mattype )
361 GO TO ( 10, 20, 30 )kmagn( mattype )
368 anorm = ( rtovfl*ulp )*aninv
372 anorm = rtunfl*n*ulpinv
376 IF( mattype.LE.15 )
THEN
379 cond = ulpinv*aninv / ten
387 IF( itype.EQ.1 )
THEN
392 rwork( indd+i-1 ) = zero
394 CALL pclaset(
'All', n, n, czero, czero, copya, 1, 1,
398 ELSE IF( itype.EQ.2 )
THEN
403 rwork( indd+i-1 ) = one
405 CALL pclaset(
'All', n, n, czero, cone, copya, 1, 1, desca )
408 ELSE IF( itype.EQ.4 )
THEN
412 CALL pcfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
413 $ sizetms, iprepad, ipostpad, padval+1.0e+0 )
415 CALL pclatms( n, n,
'S', iseed,
'S', rwork( indd ), imode,
416 $ cond, anorm, 0, 0,
'N', copya, 1, 1, desca,
417 $ order, work( indwork+iprepad ), sizetms,
421 CALL pcchekpad( desca( ctxt_ ),
'PCLATMS1-WORK', sizetms, 1,
422 $ work( indwork ), sizetms, iprepad, ipostpad,
425 ELSE IF( itype.EQ.5 )
THEN
429 CALL pcfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
430 $ sizetms, iprepad, ipostpad, padval+2.0e+0 )
432 CALL pclatms( n, n,
'S', iseed,
'S', rwork( indd ), imode,
433 $ cond, anorm, n, n, 'n
', COPYA, 1, 1, DESCA,
434 $ ORDER, WORK( INDWORK+IPREPAD ), SIZETMS,
437 CALL PCCHEKPAD( DESCA( CTXT_ ), 'pclatms2-work
', SIZETMS, 1,
438 $ WORK( INDWORK ), SIZETMS, IPREPAD, IPOSTPAD,
443.EQ.
ELSE IF( ITYPE8 ) THEN
447 NP = NUMROC( N, DESCA( MB_ ), MYROW, 0, NPROW )
448 NQ = NUMROC( N, DESCA( NB_ ), MYCOL, 0, NPCOL )
449 CALL PCMATGEN( DESCA( CTXT_ ), 'h
', 'n
', N, N, DESCA( MB_ ),
450 $ DESCA( NB_ ), COPYA, DESCA( LLD_ ),
451 $ DESCA( RSRC_ ), DESCA( CSRC_ ), ISEED( 1 ),
452 $ 0, NP, 0, NQ, MYROW, MYCOL, NPROW, NPCOL )
456.EQ.
ELSE IF( ITYPE9 ) THEN
461 CALL PCFILLPAD( DESCA( CTXT_ ), SIZETMS, 1, WORK( INDWORK ),
462 $ SIZETMS, IPREPAD, IPOSTPAD, PADVAL+3.0E+0 )
464 CALL PCLATMS( N, N, 's
', ISEED, 's
', RWORK( INDD ), IMODE,
465 $ COND, ANORM, N, N, 'n
', COPYA, 1, 1, DESCA,
466 $ ORDER, WORK( INDWORK+IPREPAD ), SIZETMS,
471 CALL PCCHEKPAD( DESCA( CTXT_ ), 'pclatms3-work
', SIZETMS, 1,
472 $ WORK( INDWORK ), SIZETMS, IPREPAD, IPOSTPAD,
475.EQ.
ELSE IF( ITYPE10 ) THEN
480 CALL PCLASET( 'all
', N, N, CZERO, CZERO, COPYA, 1, 1,
482 NP = NUMROC( N, DESCA( MB_ ), 0, 0, NPROW )
483 NQ = NUMROC( N, DESCA( NB_ ), 0, 0, NPCOL )
489 IN = MIN( 1+INT( SLARAN( ISEED )*REAL( NLOC ) ), N-NGEN )
491 CALL CLATMS( IN, IN, 's
', ISEED, 'p
', RWORK( INDD ),
492 $ IMODE, COND, ANORM, 1, 1, 'n
', A, LDA,
493 $ WORK( INDWORK ), IINFO )
496 TEMP1 = ABS( A( I-1, I ) ) /
497 $ SQRT( ABS( A( I-1, I-1 )*A( I, I ) ) )
498.GT.
IF( TEMP1HALF ) THEN
499 A( I-1, I ) = HALF*SQRT( ABS( A( I-1, I-1 )*A( I,
501 A( I, I-1 ) = A( I-1, I )
504 CALL PCELSET( COPYA, NGEN+1, NGEN+1, DESCA, A( 1, 1 ) )
506 CALL PCELSET( COPYA, NGEN+I, NGEN+I, DESCA,
508 CALL PCELSET( COPYA, NGEN+I-1, NGEN+I, DESCA,
510 CALL PCELSET( COPYA, NGEN+I, NGEN+I-1, DESCA,
518.EQ.
ELSE IF( ITYPE11 ) THEN
527 IN = MIN( J, N-NGEN )
529 RWORK( INDD+NGEN+I ) = TEMP1
538 CALL PCFILLPAD( DESCA( CTXT_ ), SIZETMS, 1, WORK( INDWORK ),
539 $ SIZETMS, IPREPAD, IPOSTPAD, PADVAL+4.0E+0 )
541 CALL PCLATMS( N, N, 's
', ISEED, 's
', RWORK( INDD ), IMODE,
542 $ COND, ANORM, 0, 0, 'n
', COPYA, 1, 1, DESCA,
543 $ ORDER, WORK( INDWORK+IPREPAD ), SIZETMS,
546 CALL PCCHEKPAD( DESCA( CTXT_ ), 'pclatms4-work
', SIZETMS, 1,
547 $ WORK( INDWORK ), SIZETMS, IPREPAD, IPOSTPAD,
560 $ CALL SLASRT( 'i
', N, RWORK( INDD ), IINFO )
564 CALL PCFILLPAD( DESCA( CTXT_ ), SIZETMS, 1, WORK( INDWORK ),
565 $ SIZETMS, IPREPAD, IPOSTPAD, PADVAL+3.3E+0 )
571 ISEED( 4 ) = MOD( ISEED( 4 )+257, 4096 )
572 ISEED( 3 ) = MOD( ISEED( 3 )+192, 4096 )
573 ISEED( 2 ) = MOD( ISEED( 2 )+35, 4096 )
574 ISEED( 1 ) = MOD( ISEED( 1 )+128, 4096 )
575 CALL PCLATMS( N, N, 's
', ISEED, 'p
', RWORK( INDD ), 3, TEN,
576 $ ANORM, N, N, 'n
', COPYB, 1, 1, DESCA, ORDER,
577 $ WORK( INDWORK+IPREPAD ), SIZETMS, IINFO )
579 CALL PCCHEKPAD( DESCA( CTXT_ ), 'pclatms5-work
', SIZETMS, 1,
580 $ WORK( INDWORK ), SIZETMS, IPREPAD, IPOSTPAD,
591 CALL PCLASIZEHEEVX( WKNOWN, 'a
', N, DESCA, VL, VU, IL, IU,
592 $ ISEED, RWORK( INDD ), MAXSIZE, VECSIZE,
595 LHEEVXSIZE = MIN( MAXSIZE, LRWORK )
598 CALL PCGSEPSUBTST( WKNOWN, IBTYPE, 'v
', 'a
', UPLO, N, VL, VU,
599 $ IL, IU, THRESH, ABSTOL, A, COPYA, B, COPYB,
600 $ Z, 1, 1, DESCA, RWORK( INDD ), WIN, IFAIL,
601 $ ICLUSTR, GAP, IPREPAD, IPOSTPAD,
602 $ WORK( INDWORK ), LLWORK, RWORK( INDRWORK ),
603 $ LLRWORK, LHEEVXSIZE, IWORK, ISIZEHEEVX, RES,
604 $ TSTNRM, QTQNRM, NOUT )
611.LE.
IF( THRESHZERO ) THEN
614.NE.
ELSE IF( RES0 ) THEN
620.GT..AND.
IF( THRESHZERO LSAME( SUBTESTS, 'y
' ) ) THEN
628 CALL PCLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
629 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
634 CALL PCGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
635 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
636 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
637 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
638 $ IPOSTPAD, WORK( INDWORK ), LLWORK, RWORK,
639 $ LRWORK, LHEEVXSIZE, IWORK, ISIZEHEEVX,
640 $ RES, TSTNRM, QTQNRM, NOUT )
643 PASSED = 'failed
stest 1
'
644 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
645 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
655 CALL PCLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
656 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
659 LHEEVXSIZE = VECSIZE + INT( SLARAN( ISEED )*
660 $ REAL( MAXSIZE-VECSIZE ) )
662 CALL PCGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
663 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
664 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
665 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
666 $ IPOSTPAD, WORK( INDWORK ), LLWORK, RWORK,
667 $ LRWORK, LHEEVXSIZE, IWORK, ISIZEHEEVX,
668 $ RES, TSTNRM, QTQNRM, NOUT )
671 PASSED = 'failed
stest 2
'
672 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
673 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
684 CALL PCLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
685 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
689 CALL PCGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
690 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
691 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
692 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
693 $ IPOSTPAD, WORK( INDWORK ), LLWORK, RWORK,
694 $ LRWORK, LHEEVXSIZE, IWORK, ISIZEHEEVX,
695 $ RES, TSTNRM, QTQNRM, NOUT )
698 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
699 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
700 PASSED = 'failed
stest 3
'
716 CALL PCLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
717 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
722 CALL PCGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
723 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
724 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
725 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
726 $ IPOSTPAD, WORK( INDWORK ), LLWORK, RWORK,
727 $ LRWORK, LHEEVXSIZE, IWORK, ISIZEHEEVX,
728 $ RES, TSTNRM, QTQNRM, NOUT )
731 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
732 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
733 PASSED = 'failed
stest 4
'
749 CALL PCLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
750 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
755 CALL PCGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
756 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
757 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
758 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
759 $ IPOSTPAD, WORK( INDWORK ), LLWORK, RWORK,
760 $ LRWORK, LHEEVXSIZE, IWORK, ISIZEHEEVX,
761 $ RES, TSTNRM, QTQNRM, NOUT )
764 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
765 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
766 PASSED = 'failed
stest 5
'
781 CALL PCLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
782 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
787 CALL PCGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
788 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
789 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
790 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
791 $ IPOSTPAD, WORK( INDWORK ), LLWORK, RWORK,
792 $ LRWORK, LHEEVXSIZE, IWORK, ISIZEHEEVX,
793 $ RES, TSTNRM, QTQNRM, NOUT )
796 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
797 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
798 PASSED = 'failed
stest 6
'
813 CALL PCLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
814 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
816 LHEEVXSIZE = VECSIZE + INT( SLARAN( ISEED )*
817 $ REAL( MAXSIZE-VECSIZE ) )
819 CALL PCGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
820 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
821 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
822 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
823 $ IPOSTPAD, WORK( INDWORK ), LLWORK, RWORK,
824 $ LRWORK, LHEEVXSIZE, IWORK, ISIZEHEEVX,
825 $ RES, TSTNRM, QTQNRM, NOUT )
828 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
829 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
830 PASSED = 'failed
stest 7
'
845 CALL PCLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
846 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
851 CALL PCGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
852 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
853 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
854 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
855 $ IPOSTPAD, WORK( INDWORK ), LLWORK, RWORK,
856 $ LRWORK, LHEEVXSIZE, IWORK, ISIZEHEEVX,
857 $ RES, TSTNRM, QTQNRM, NOUT )
860 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
861 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
862 PASSED = 'failed
stest 8
'
877 CALL PCLASIZEHEEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
878 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
883 CALL PCGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
884 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
885 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
886 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
887 $ IPOSTPAD, WORK( INDWORK ), LLWORK, RWORK,
888 $ LRWORK, LHEEVXSIZE, IWORK, ISIZEHEEVX,
889 $ RES, TSTNRM, QTQNRM, NOUT )
892 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
893 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
894 PASSED = 'failed
stest 9
'
911 $ iseed, win( 1+iprepad ), maxsize,
916 CALL pcgsepsubtst( .true., ibtype, jobz, range, uplo, n, vl,
917 $ vu, il, iu, thresh, abstol, a, copya, b,
918 $ copyb, z, 1, 1, desca, win( 1+iprepad ),
919 $ wnew, ifail, iclustr, gap, iprepad,
920 $ ipostpad, work( indwork ), llwork, rwork,
921 $ lrwork, lheevxsize, iwork, isizeheevx,
922 $ res, tstnrm, qtqnrm, nout )
925 maxtstnrm =
max( tstnrm, maxtstnrm )
926 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
927 passed =
'FAILED stest10'
945 $ iseed, win( 1+iprepad ), maxsize,
949 CALL pcgsepsubtst( .true., ibtype, jobz, range, uplo, n, vl,
950 $ vu, il, iu, thresh, abstol, a, copya, b,
951 $ copyb, z, 1, 1, desca, win( 1+iprepad ),
952 $ wnew, ifail, iclustr, gap, iprepad,
953 $ ipostpad, work( indwork ), llwork, rwork,
954 $ lrwork, lheevxsize, iwork, isizeheevx,
955 $ res, tstnrm, qtqnrm, nout )
958 maxtstnrm =
max( tstnrm, maxtstnrm )
959 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
960 passed =
'FAILED stest11'
977 $ iseed, win( 1+iprepad ), maxsize,
982 CALL pcgsepsubtst( .true., ibtype, jobz, range, uplo, n, vl,
983 $ vu, il, iu, thresh, abstol, a, copya, b,
984 $ copyb, z, 1, 1, desca, win( 1+iprepad ),
985 $ wnew, ifail, iclustr, gap, iprepad,
986 $ ipostpad, work( indwork ), llwork, rwork,
987 $ lrwork, lheevxsize, iwork, isizeheevx,
988 $ res, tstnrm, qtqnrm, nout )
991 maxtstnrm =
max( tstnrm, maxtstnrm )
992 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
993 passed =
'FAILED stest12'
1002 IF( info.EQ.0 )
THEN
1010 CALL pclasizeheevx( .true., range, n, desca, vl, vu, il, iu,
1011 $ iseed, win( 1+iprepad ), maxsize,
1012 $ vecsize, valsize )
1015 CALL pcgsepsubtst( .true., ibtype, jobz, range, uplo, n, vl,
1016 $ vu, il, iu, thresh, abstol, a, copya, b,
1017 $ copyb, z, 1, 1, desca, win( 1+iprepad ),
1018 $ wnew, ifail, iclustr, gap, iprepad,
1019 $ ipostpad, work( indwork ), llwork, rwork,
1020 $ lrwork, lheevxsize, iwork, isizeheevx,
1021 $ res, tstnrm, qtqnrm, nout )
1024 maxtstnrm =
max( tstnrm, maxtstnrm )
1025 maxqtqnrm =
max( qtqnrm, maxqtqnrm )
1026 passed =
'FAILED stest13'
1034 CALL igamx2d( context,
'All',
' ', 1, 1, info, 1, -1, -1, -1, -1,
1037 IF( info.EQ.1 )
THEN
1039 WRITE( nout, fmt = 9994 )
'C '
1040 WRITE( nout, fmt = 9993 )iseedin( 1 )
1041 WRITE( nout, fmt = 9992 )iseedin( 2 )
1042 WRITE( nout, fmt = 9991 )iseedin( 3 )
1043 WRITE( nout, fmt = 9990 )iseedin( 4 )
1044 IF( lsame( uplo,
'L' ) )
THEN
1045 WRITE( nout, fmt = 9994 )
' UPLO= ''L'' '
1047 WRITE( nout, fmt = 9994 )
' UPLO= ''U'' '
1049 IF( lsame( subtests,
'Y' ) )
THEN
1050 WRITE( nout, fmt = 9994 )
' SUBTESTS= ''Y'' '
1052 WRITE( nout, fmt = 9994 )
' SUBTESTS= ''N'' '
1054 WRITE( nout, fmt = 9989 )n
1055 WRITE( nout, fmt = 9988 )nprow
1056 WRITE( nout, fmt = 9987 )npcol
1057 WRITE( nout, fmt = 9986 )nb
1058 WRITE( nout, fmt = 9985 )mattype
1059 WRITE( nout, fmt = 9984 )ibtype
1060 WRITE( nout, fmt = 9982 )abstol
1061 WRITE( nout, fmt = 9981 )thresh
1062 WRITE( nout, fmt = 9994 )
'C '
1066 CALL slcombine( context,
'All',
'>',
'W', 6, 1, wtime )
1067 CALL slcombine( context,
'All',
'>',
'C', 6, 1, ctime )
1069 IF( info.EQ.0 .OR. info.EQ.1 )
THEN
1070 IF( wtime( 1 ).GE.0.0 )
THEN
1071 WRITE( nout, fmt = 9999 )n, nb, nprow, npcol, mattype,
1072 $ ibtype, subtests, wtime( 1 ), ctime( 1 ), maxtstnrm,
1075 WRITE( nout, fmt = 9998 )n, nb, nprow, npcol, mattype,
1076 $ ibtype, subtests, ctime( 1 ), maxtstnrm, passed
1078 ELSE IF( info.EQ.2 )
THEN
1079 IF( wtime( 1 ).GE.0.0 )
THEN
1080 WRITE( nout, fmt = 9997 )n, nb, nprow, npcol, mattype,
1081 $ ibtype, subtests, wtime( 1 ), ctime( 1 )
1083 WRITE( nout, fmt = 9996 )n, nb, nprow, npcol, mattype,
1084 $ ibtype, subtests, ctime( 1 )
1086 ELSE IF( info.EQ.3 )
THEN
1087 WRITE( nout, fmt = 9995 )n, nb, nprow, npcol, mattype,
1095 9999
FORMAT( 1x, i5, 1x, i3, 1x, i3, 1x, i3, 1x, i3, 3x, i3, 4x, a1,
1096 $ 1x, f8.2, 1x, f8.2, 1x, g9.2, 1x, a14 )
1097 9998
FORMAT( 1x, i5, 1x, i3, 1x, i3, 1x, i3, 1x, i3, 3x, i3, 4x, a1,
1098 $ 1x, 8x, 1x, f8.2, 1x, g9.2, a14 )
1099 9997
FORMAT( 1x, i5, 1x, i3, 1x, i3, 1x, i3, 1x, i3, 3x, i3, 4x, a1,
1100 $ 1x, f8.2, 1x, f8.2, 11x,
'Bypassed' )
1101 9996
FORMAT( 1x, i5, 1x, i3, 1x, i3, 1x, i3, 1x, i3, 3x, i3, 4x, a1,
1102 $ 1x, 8x, 1x, f8.2, 11x,
'Bypassed' )
1103 9995
FORMAT( 1x, i5, 1x, i3, 1x, i3, 1x, i3, 1x, i3, 3x, i3, 4x, a1,
1104 $ 22x,
'Bad MEMORY parameters' )
1106 9993
FORMAT(
' ISEED( 1 ) =', i8 )
1107 9992
FORMAT(
' ISEED( 2 ) =', i8 )
1108 9991
FORMAT(
' ISEED( 3 ) =', i8 )
1109 9990
FORMAT(
' ISEED( 4 ) =', i8 )
1110 9989
FORMAT(
' N=', i8 )
1111 9988
FORMAT(
' NPROW=', i8 )
1112 9987
FORMAT(
' NPCOL=', i8 )
1113 9986
FORMAT(
' NB=', i8 )
1114 9985
FORMAT(
' MATTYPE=', i8 )
1115 9984
FORMAT(
' IBTYPE=', i8 )
1116 9983
FORMAT(
' SUBTESTS=', a1 )
1117 9982
FORMAT(
' ABSTOL=', d16.6 )
1118 9981
FORMAT(
' THRESH=', d16.6 )
1119 9980
FORMAT(
' Increase TOTMEM in PCGSEPDRIVER' )