3 SUBROUTINE pdgseptst( 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, IWORK,
15 CHARACTER SUBTESTS, UPLO
16 INTEGER IBTYPE, INFO, IPOSTPAD, IPREPAD, LDA, LIWORK,
17 $ LWORK, MATTYPE, N, NOUT, ORDER
18 DOUBLE PRECISION ABSTOL, THRESH
21 INTEGER DESCA( * ), ICLUSTR( * ), IFAIL( * ),
22 $ iseed( 4 ), iwork( * )
23 DOUBLE PRECISION A( LDA, * ), B( LDA, * ), COPYA( LDA, * ),
24 $ COPYB( LDA, * ), GAP( * ), WIN( * ), WNEW( * ),
25 $ work( * ), z( lda, * )
212 INTEGER BLOCK_CYCLIC_2D, DLEN_, DTYPE_, CTXT_, M_, ,
213 $ MB_, NB_, RSRC_, CSRC_, LLD_
214 PARAMETER ( BLOCK_CYCLIC_2D = 1, dlen_ = 9, dtype_ = 1,
215 $ ctxt_ = 2, m_ = 3, n_ = 4, mb_ = 5, nb_ = 6,
216 $ rsrc_ = 7, csrc_ = 8, lld_ = 9 )
217 DOUBLE PRECISION ZERO, ONE, TEN, HALF
218 parameter( zero = 0.0d+0, one = 1.0d+0, ten = 10.0d+0,
220 DOUBLE PRECISION PADVAL
221 parameter( padval = 19.25d+0 )
223 PARAMETER ( MAXTYP = 22 )
228 CHARACTER JOBZ, RANGE
230 INTEGER CONTEXT, , IAM, IINFO, IL, IMODE, IN, INDD,
231 $ indwork, isizesubtst, isizesyevx, isizetst,
232 $ itype, iu, j, llwork, lsyevxsize, maxsize,
233 $ mycol, myrow, nb, ngen, nloc, nnodes, np,
234 $ npcol, nprow, nq, res, sizechk, sizemqrleft,
235 $ sizemqrright, sizeqrf, sizeqtq, sizesubtst,
236 $ sizesyevx, sizetms, sizetst, valsize, vecsize
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
260 INTRINSIC abs, dble, int,
max,
min, mod, 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_*
277 context = desca( ctxt_ )
280 CALL blacs_pinfo( iam, nnodes )
287 CALL pdlasizegsep( desca, iprepad, ipostpad, sizemqrleft,
288 $ sizemqrright, sizeqrf, sizetms, sizeqtq,
289 $ sizechk, sizesyevx, isizesyevx, sizesubtst,
290 $ isizesubtst, sizetst, isizetst )
292 IF( lwork.LT.sizetst )
THEN
296 CALL igamx2d( context,
'a',
' ', 1, 1, info, 1, 1, 1, -1, -1, 0 )
302 llwork = lwork - indwork + 1
304 ulp = pdlamch( context,
'P' )
306 unfl = pdlamch( context,
'Safe min' )
309 rtunfl = sqrt( unfl )
310 rtovfl = sqrt( ovfl )
311 aninv = one / dble(
max( 1, n ) )
315 IF( myrow.EQ.0 .AND. mycol.EQ.0 )
THEN
316 CALL igebs2d( context,
'a',
' ', 4, 1, iseed, 4 )
318 CALL igebr2d( context,
'a',
' ', 4, 1, iseed, 4, 0, 0 )
320 iseedin( 1 ) = iseed( 1 )
321 iseedin( 2 ) = iseed( 2 )
322 iseedin( 3 ) = iseed( 3 )
323 iseedin( 4 ) = iseed( 4 )
342 itype = ktype( mattype )
343 imode = kmode( mattype )
347 GO TO ( 10, 20, 30 )kmagn( mattype )
354 anorm = ( rtovfl*ulp )*aninv
358 anorm = rtunfl*n*ulpinv
362 IF( mattype.LE.15 )
THEN
365 cond = ulpinv*aninv / ten
373 IF( itype.EQ.1 )
THEN
378 work( indd+i-1 ) = zero
380 CALL pdlaset(
'All', n, n, zero, zero, copya, 1, 1, desca )
383 ELSE IF( itype.EQ.2 )
THEN
388 work( indd+i-1 ) = one
390 CALL pdlaset(
'All', n, n, zero, one, copya, 1, 1, desca )
393 ELSE IF( itype.EQ.4 )
THEN
397 CALL pdfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
398 $ sizetms, iprepad, ipostpad, padval+1.0d+0 )
400 CALL pdlatms( n, n,
'S', iseed,
'S', work( indd ), imode,
401 $ cond, anorm, 0, 0,
'N', copya, 1, 1, desca,
402 $ order, work( indwork+iprepad ), sizetms,
406 CALL pdchekpad( desca( ctxt_ ),
'PDLATMS1-WORK', sizetms, 1,
407 $ work( indwork ), sizetms, iprepad, ipostpad,
410 ELSE IF( itype.EQ.5 )
THEN
414 CALL pdfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
415 $ sizetms, iprepad, ipostpad, padval+2.0d+0 )
417 CALL pdlatms( n, n,
'S', iseed,
'S', work( indd ), imode,
418 $ cond, anorm, n, n,
'N', copya, 1, 1, desca,
419 $ order, work( indwork+iprepad ), sizetms,
422 CALL pdchekpad( desca( ctxt_ ),
'PDLATMS2-WORK', sizetms, 1,
423 $ work( indwork ), sizetms, iprepad, ipostpad,
428 ELSE IF( itype.EQ.8 )
THEN
432 np = numroc( n, desca( mb_ ), myrow, 0, nprow )
433 nq = numroc( n, desca( nb_ ), mycol, 0, npcol )
434 CALL pdmatgen( desca( ctxt_ ),
'S',
'N', n, n, desca( mb_ ),
435 $ desca( nb_ ), copya, desca( lld_ ),
436 $ desca( rsrc_ ), desca( csrc_ ), iseed( 1 ),
437 $ 0, np, 0, nq, myrow, mycol, nprow, npcol )
441 ELSE IF( itype.EQ.9 )
THEN
446 CALL pdfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
447 $ sizetms, iprepad, ipostpad, padval+3.0d+0 )
449 CALL pdlatms( n, n,
'S', iseed,
'S', work( indd ), imode,
450 $ cond, anorm, n, n,
'N', copya, 1, 1, desca,
451 $ order, work( indwork+iprepad ), sizetms,
456 CALL pdchekpad( desca( ctxt_ ),
'PDLATMS3-WORK', sizetms, 1,
457 $ work( indwork ), sizetms, iprepad, ipostpad,
460 ELSE IF( itype.EQ.10 )
THEN
465 CALL pdlaset(
'All', n, n, zero, zero, copya, 1, 1, desca )
466 np = numroc( n, desca( mb_ ), 0, 0, nprow )
467 nq = numroc( n, desca( nb_ ), 0, 0, npcol )
473 in =
min( 1+int( dlaran( iseed )*dble( nloc ) ), n-ngen )
475 CALL dlatms( in, in,
'S', iseed,
'P', work( indd ),
476 $ imode, cond, anorm, 1, 1,
'N', a, lda,
477 $ work( indwork ), iinfo )
480 temp1 = abs( a( i-1, i ) ) /
481 $ sqrt( abs( a( i-1, i-1 )*a( i, i ) ) )
482 IF( temp1.GT.half )
THEN
483 a( i-1, i ) = half*sqrt( abs( a( i-1, i-1 )*a( i,
485 a( i, i-1 ) = a( i-1, i )
488 CALL pdelset( copya, ngen+1, ngen+1, desca, a( 1, 1 ) )
494 CALL pdelset( copya, ngen+i, ngen+i-1, desca,
502 ELSE IF( itype.EQ.
THEN
511 in =
min( j, n-ngen )
513 work( indd+ngen+i ) = temp1
522 CALL pdfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
523 $ sizetms, iprepad, ipostpad, padval+4.0d+0 )
525 CALL pdlatms( n, n,
'S''S', work( indd ), imode,
526 $ cond, anorm, 0, 0,
'N', copya, 1, 1, desca,
527 $ order, work( indwork+iprepad ), sizetms,
530 CALL pdchekpad( desca( ctxt_ ),
'PDLATMS4-WORK', sizetms, 1,
531 $ work( indwork ), sizetms, iprepad, ipostpad,
543 $
CALL dlasrt(
'I', n, work( indd ), iinfo )
547 CALL pdfillpad( desca( ctxt_ ), sizetms, 1, work( indwork ),
548 $ sizetms, iprepad, ipostpad, padval+3.3d+0 )
554 iseed( 4 ) = mod( iseed( 4 )+257, 4096 )
555 iseed( 3 ) = mod( iseed( 3 )+192, 4096 )
556 iseed( 2 ) = mod( iseed( 2 )+35, 4096 )
557 iseed( 1 ) = mod( iseed( 1 )+128, 4096 )
558 CALL pdlatms( n, n,
'S', iseed,
'P', work( indd ), 3, ten,
559 $ anorm, n, n,
'N', copyb, 1, 1, desca, order,
560 $ work( indwork+iprepad ), sizetms, iinfo )
562 CALL pdchekpad( desca( ctxt_ ),
'PDLATMS5-WORK', sizetms, 1,
563 $ work( indwork ), sizetms, iprepad, ipostpad,
575 $ iseed, work( indd ), maxsize, vecsize,
578 lsyevxsize =
min( maxsize, lwork )
581 CALL pdgsepsubtst( wknown, ibtype,
'v',
'a', uplo, n, vl, vu,
582 $ il, iu, thresh, abstol, a, copya, b, copyb,
583 $ z, 1, 1, desca, work( indd ), win, ifail,
584 $ iclustr, gap, iprepad, ipostpad,
585 $ work( indwork ), llwork, lsyevxsize, iwork,
586 $ isizesyevx, res, tstnrm, qtqnrm, nout )
593 IF( thresh.LE.zero )
THEN
596 ELSE IF( res.NE.0 )
THEN
602 IF( thresh.GT.zero .AND. lsame( subtests,
'Y' ) )
THEN
610 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
611 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
616 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
617 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
618 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
619 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
620 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
621 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
622 $ TSTNRM, QTQNRM, NOUT )
625 PASSED = 'failed
stest 1
'
626 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
627 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
637 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
638 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
641 LSYEVXSIZE = VECSIZE + INT( DLARAN( ISEED )*
642 $ DBLE( MAXSIZE-VECSIZE ) )
644 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
645 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
646 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
647 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
648 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
649 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
650 $ TSTNRM, QTQNRM, NOUT )
653 PASSED = 'failed
stest 2
'
654 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
655 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
666 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
667 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
671 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
672 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
673 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
674 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
675 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
676 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
677 $ TSTNRM, QTQNRM, NOUT )
680 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
681 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
682 PASSED = 'failed
stest 3
'
698 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
699 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
704 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
705 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
706 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
707 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
708 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
709 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
710 $ TSTNRM, QTQNRM, NOUT )
713 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
714 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
715 PASSED = 'failed
stest 4
'
731 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
732 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
737 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
738 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
739 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
740 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
741 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
742 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
743 $ TSTNRM, QTQNRM, NOUT )
746 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
747 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
748 PASSED = 'failed
stest 5
'
763 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
764 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
769 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
770 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
771 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
772 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
773 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
774 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
775 $ TSTNRM, QTQNRM, NOUT )
778 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
779 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
780 PASSED = 'failed
stest 6
'
795 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
796 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
798 LSYEVXSIZE = VECSIZE + INT( DLARAN( ISEED )*
799 $ DBLE( MAXSIZE-VECSIZE ) )
801 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
802 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
803 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
804 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
805 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
806 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
807 $ TSTNRM, QTQNRM, NOUT )
810 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
811 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
812 PASSED = 'failed
stest 7
'
827 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
828 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
833 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
834 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
835 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
836 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
837 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
838 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
839 $ TSTNRM, QTQNRM, NOUT )
842 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
843 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
844 PASSED = 'failed
stest 8
'
859 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
860 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
865 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
866 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
867 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
868 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
869 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
870 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
871 $ TSTNRM, QTQNRM, NOUT )
874 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
875 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
876 PASSED = 'failed
stest 9
'
892 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
893 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
898 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
899 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
900 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
901 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
902 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
903 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
904 $ TSTNRM, QTQNRM, NOUT )
907 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
908 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
909 PASSED = 'failed stest10
'
926 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
927 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
930 LSYEVXSIZE = VECSIZE + INT( DLARAN( ISEED )*
931 $ DBLE( MAXSIZE-VECSIZE ) )
933 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
934 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
935 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
936 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
937 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
938 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
939 $ TSTNRM, QTQNRM, NOUT )
942 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
943 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
944 PASSED = 'failed stest11
'
960 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
961 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
966 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
967 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
968 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
969 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
970 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
971 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
972 $ TSTNRM, QTQNRM, NOUT )
975 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
976 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
977 PASSED = 'failed stest12
'
994 CALL PDLASIZESYEVX( .TRUE., RANGE, N, DESCA, VL, VU, IL, IU,
995 $ ISEED, WIN( 1+IPREPAD ), MAXSIZE,
998 LSYEVXSIZE = VALSIZE + INT( DLARAN( ISEED )*
999 $ DBLE( VECSIZE-VALSIZE ) )
1001 CALL PDGSEPSUBTST( .TRUE., IBTYPE, JOBZ, RANGE, UPLO, N, VL,
1002 $ VU, IL, IU, THRESH, ABSTOL, A, COPYA, B,
1003 $ COPYB, Z, 1, 1, DESCA, WIN( 1+IPREPAD ),
1004 $ WNEW, IFAIL, ICLUSTR, GAP, IPREPAD,
1005 $ IPOSTPAD, WORK( INDWORK ), LLWORK,
1006 $ LSYEVXSIZE, IWORK, ISIZESYEVX, RES,
1007 $ TSTNRM, QTQNRM, NOUT )
1010 MAXTSTNRM = MAX( TSTNRM, MAXTSTNRM )
1011 MAXQTQNRM = MAX( QTQNRM, MAXQTQNRM )
1012 PASSED = 'failed stest13
'
1020 CALL IGAMX2D( CONTEXT, 'all
', ' ', 1, 1, INFO, 1, -1, -1, -1, -1,
1023.EQ.
IF( INFO1 ) THEN
1025 WRITE( NOUT, FMT = 9994 )'c
'
1026 WRITE( NOUT, FMT = 9993 )ISEEDIN( 1 )
1027 WRITE( NOUT, FMT = 9992 )ISEEDIN( 2 )
1028 WRITE( NOUT, FMT = 9991 )ISEEDIN( 3 )
1029 WRITE( NOUT, FMT = 9990 )ISEEDIN( 4 )
1030 IF( LSAME( UPLO, 'l
' ) ) THEN
1031 WRITE( NOUT, FMT = 9994 )' uplo=
''l
'' '
1033 WRITE( NOUT, FMT = 9994 )' uplo=
''u
'' '
1035 IF( LSAME( SUBTESTS, 'y
' ) ) THEN
1036 WRITE( NOUT, FMT = 9994 )' subtests=
''y
'' '
1038 WRITE( NOUT, FMT = 9994 )' subtests=
''n
'' '
1040 WRITE( NOUT, FMT = 9989 )N
1041 WRITE( NOUT, FMT = 9988 )NPROW
1042 WRITE( NOUT, FMT = 9987 )NPCOL
1043 WRITE( NOUT, FMT = 9986 )NB
1044 WRITE( NOUT, FMT = 9985 )MATTYPE
1045 WRITE( NOUT, FMT = 9984 )IBTYPE
1046 WRITE( NOUT, FMT = 9982 )ABSTOL
1047 WRITE( NOUT, FMT = 9981 )THRESH
1048 WRITE( NOUT, FMT = 9994 )'c
'
1052 CALL SLCOMBINE( CONTEXT, 'all
', '>
', 'w
', 6, 1, WTIME )
1053 CALL SLCOMBINE( CONTEXT, 'all
', '>
', 'c
', 6, 1, CTIME )
1055.EQ..OR..EQ.
IF( INFO0 INFO1 ) THEN
1056.GE.
IF( WTIME( 1 )0.0 ) THEN
1057 WRITE( NOUT, FMT = 9999 )N, NB, NPROW, NPCOL, MATTYPE,
1058 $ IBTYPE, SUBTESTS, WTIME( 1 ), CTIME( 1 ), MAXTSTNRM,
1061 WRITE( NOUT, FMT = 9998 )N, NB, NPROW, NPCOL, MATTYPE,
1062 $ IBTYPE, SUBTESTS, CTIME( 1 ), MAXTSTNRM, PASSED
1064.EQ.
ELSE IF( INFO2 ) THEN
1065.GE.
IF( WTIME( 1 )0.0 ) THEN
1066 WRITE( NOUT, FMT = 9997 )N, NB, NPROW, NPCOL, MATTYPE,
1067 $ IBTYPE, SUBTESTS, WTIME( 1 ), CTIME( 1 )
1069 WRITE( NOUT, FMT = 9996 )N, NB, NPROW, NPCOL, MATTYPE,
1070 $ IBTYPE, SUBTESTS, CTIME( 1 )
1072.EQ.
ELSE IF( INFO3 ) THEN
1073 WRITE( NOUT, FMT = 9995 )N, NB, NPROW, NPCOL, MATTYPE,
1081 9999 FORMAT( 1X, I5, 1X, I3, 1X, I3, 1X, I3, 1X, I3, 3X, I3, 4X, A1,
1082 $ 1X, F8.2, 1X, F8.2, 1X, G9.2, 1X, A14 )
1083 9998 FORMAT( 1X, I5, 1X, I3, 1X, I3, 1X, I3, 1X, I3, 3X, I3, 4X, A1,
1084 $ 1X, 8X, 1X, F8.2, 1X, G9.2, A14 )
1085 9997 FORMAT( 1X, I5, 1X, I3, 1X, I3, 1X, I3, 1X, I3, 3X, I3, 4X, A1,
1086 $ 1X, F8.2, 1X, F8.2, 11X, 'bypassed
' )
1087 9996 FORMAT( 1X, I5, 1X, I3, 1X, I3, 1X, I3, 1X, I3, 3X, I3, 4X, A1,
1088 $ 1X, 8X, 1X, F8.2, 11X, 'bypassed
' )
1089 9995 FORMAT( 1X, I5, 1X, I3, 1X, I3, 1X, I3, 1X, I3, 3X, I3, 4X, A1,
1090 $ 22X, 'bad memory parameters
' )
1092 9993 FORMAT( ' iseed( 1 ) =
', I8 )
1093 9992 FORMAT( ' iseed( 2 ) =
', I8 )
1094 9991 FORMAT( ' iseed( 3 ) =
', I8 )
1095 9990 FORMAT( ' iseed( 4 ) =
', I8 )
1096 9989 FORMAT( ' n=
', I8 )
1097 9988 FORMAT( ' nprow=
', I8 )
1098 9987 FORMAT( ' npcol=
', I8 )
1099 9986 FORMAT( ' nb=
', I8 )
1100 9985 FORMAT( ' mattype=
', I8 )
1101 9984 FORMAT( ' ibtype=
', I8 )
1102 9983 FORMAT( ' subtests=
', A1 )
1103 9982 FORMAT( ' abstol=
', D16.6 )
1104 9981 FORMAT( ' thresh=
', D16.6 )