Merge pull request #3122 from martin-frbg/xeigtstz
Fix unusual stack size requirements of the LAPACK EIG tests (from Reference-LAPACK PR 335)
This commit is contained in:
commit
c7c82be1c3
|
@ -25,7 +25,7 @@ set(AEIGTST
|
||||||
set(SCIGTST slafts.f slahd2.f slasum.f slatb9.f sstech.f sstect.f
|
set(SCIGTST slafts.f slahd2.f slasum.f slatb9.f sstech.f sstect.f
|
||||||
ssvdch.f ssvdct.f ssxt1.f)
|
ssvdch.f ssvdct.f ssxt1.f)
|
||||||
|
|
||||||
set(SEIGTST schkee.f
|
set(SEIGTST schkee.F
|
||||||
sbdt01.f sbdt02.f sbdt03.f sbdt04.f sbdt05.f
|
sbdt01.f sbdt02.f sbdt03.f sbdt04.f sbdt05.f
|
||||||
schkbb.f schkbd.f schkbk.f schkbl.f schkec.f
|
schkbb.f schkbd.f schkbk.f schkbl.f schkec.f
|
||||||
schkgg.f schkgk.f schkgl.f schkhs.f schksb.f schkst.f schkst2stg.f schksb2stg.f
|
schkgg.f schkgk.f schkgl.f schkhs.f schksb.f schkst.f schkst2stg.f schksb2stg.f
|
||||||
|
@ -42,7 +42,7 @@ set(SEIGTST schkee.f
|
||||||
sort03.f ssbt21.f ssgt01.f sslect.f sspt21.f sstt21.f
|
sort03.f ssbt21.f ssgt01.f sslect.f sspt21.f sstt21.f
|
||||||
sstt22.f ssyt21.f ssyt22.f)
|
sstt22.f ssyt21.f ssyt22.f)
|
||||||
|
|
||||||
set(CEIGTST cchkee.f
|
set(CEIGTST cchkee.F
|
||||||
cbdt01.f cbdt02.f cbdt03.f cbdt05.f
|
cbdt01.f cbdt02.f cbdt03.f cbdt05.f
|
||||||
cchkbb.f cchkbd.f cchkbk.f cchkbl.f cchkec.f
|
cchkbb.f cchkbd.f cchkbk.f cchkbl.f cchkec.f
|
||||||
cchkgg.f cchkgk.f cchkgl.f cchkhb.f cchkhs.f cchkst.f cchkst2stg.f cchkhb2stg.f
|
cchkgg.f cchkgk.f cchkgl.f cchkhb.f cchkhs.f cchkst.f cchkst2stg.f cchkhb2stg.f
|
||||||
|
@ -62,7 +62,7 @@ set(CEIGTST cchkee.f
|
||||||
set(DZIGTST dlafts.f dlahd2.f dlasum.f dlatb9.f dstech.f dstect.f
|
set(DZIGTST dlafts.f dlahd2.f dlasum.f dlatb9.f dstech.f dstect.f
|
||||||
dsvdch.f dsvdct.f dsxt1.f)
|
dsvdch.f dsvdct.f dsxt1.f)
|
||||||
|
|
||||||
set(DEIGTST dchkee.f
|
set(DEIGTST dchkee.F
|
||||||
dbdt01.f dbdt02.f dbdt03.f dbdt04.f dbdt05.f
|
dbdt01.f dbdt02.f dbdt03.f dbdt04.f dbdt05.f
|
||||||
dchkbb.f dchkbd.f dchkbk.f dchkbl.f dchkec.f
|
dchkbb.f dchkbd.f dchkbk.f dchkbl.f dchkec.f
|
||||||
dchkgg.f dchkgk.f dchkgl.f dchkhs.f dchksb.f dchkst.f dchkst2stg.f dchksb2stg.f
|
dchkgg.f dchkgk.f dchkgl.f dchkhs.f dchksb.f dchkst.f dchkst2stg.f dchksb2stg.f
|
||||||
|
@ -79,7 +79,7 @@ set(DEIGTST dchkee.f
|
||||||
dort03.f dsbt21.f dsgt01.f dslect.f dspt21.f dstt21.f
|
dort03.f dsbt21.f dsgt01.f dslect.f dspt21.f dstt21.f
|
||||||
dstt22.f dsyt21.f dsyt22.f)
|
dstt22.f dsyt21.f dsyt22.f)
|
||||||
|
|
||||||
set(ZEIGTST zchkee.f
|
set(ZEIGTST zchkee.F
|
||||||
zbdt01.f zbdt02.f zbdt03.f zbdt05.f
|
zbdt01.f zbdt02.f zbdt03.f zbdt05.f
|
||||||
zchkbb.f zchkbd.f zchkbk.f zchkbl.f zchkec.f
|
zchkbb.f zchkbd.f zchkbk.f zchkbl.f zchkec.f
|
||||||
zchkgg.f zchkgk.f zchkgl.f zchkhb.f zchkhs.f zchkst.f zchkst2stg.f zchkhb2stg.f
|
zchkgg.f zchkgk.f zchkgl.f zchkhb.f zchkhs.f zchkst.f zchkst2stg.f zchkhb2stg.f
|
||||||
|
|
|
@ -157,11 +157,11 @@ cleanobj:
|
||||||
cleanexe:
|
cleanexe:
|
||||||
rm -f xeigtst*
|
rm -f xeigtst*
|
||||||
|
|
||||||
schkee.o: schkee.f
|
schkee.o: schkee.F
|
||||||
$(FC) $(FFLAGS_DRV) -c -o $@ $<
|
$(FC) $(FFLAGS_DRV) -c -o $@ $<
|
||||||
dchkee.o: dchkee.f
|
dchkee.o: dchkee.F
|
||||||
$(FC) $(FFLAGS_DRV) -c -o $@ $<
|
$(FC) $(FFLAGS_DRV) -c -o $@ $<
|
||||||
cchkee.o: cchkee.f
|
cchkee.o: cchkee.F
|
||||||
$(FC) $(FFLAGS_DRV) -c -o $@ $<
|
$(FC) $(FFLAGS_DRV) -c -o $@ $<
|
||||||
zchkee.o: zchkee.f
|
zchkee.o: zchkee.F
|
||||||
$(FC) $(FFLAGS_DRV) -c -o $@ $<
|
$(FC) $(FFLAGS_DRV) -c -o $@ $<
|
||||||
|
|
|
@ -1034,6 +1034,10 @@
|
||||||
* =====================================================================
|
* =====================================================================
|
||||||
PROGRAM CCHKEE
|
PROGRAM CCHKEE
|
||||||
*
|
*
|
||||||
|
#if defined(_OPENMP)
|
||||||
|
use omp_lib
|
||||||
|
#endif
|
||||||
|
*
|
||||||
* -- LAPACK test routine (version 3.7.0) --
|
* -- LAPACK test routine (version 3.7.0) --
|
||||||
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
||||||
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
@ -1071,7 +1075,7 @@
|
||||||
CHARACTER*80 LINE
|
CHARACTER*80 LINE
|
||||||
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
|
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
|
||||||
$ NK, NN, NPARMS, NRHS, NTYPES,
|
$ NK, NN, NPARMS, NRHS, NTYPES,
|
||||||
$ VERS_MAJOR, VERS_MINOR, VERS_PATCH
|
$ VERS_MAJOR, VERS_MINOR, VERS_PATCH, N_THREADS
|
||||||
REAL EPS, S1, S2, THRESH, THRSHN
|
REAL EPS, S1, S2, THRESH, THRSHN
|
||||||
* ..
|
* ..
|
||||||
* .. Local Arrays ..
|
* .. Local Arrays ..
|
||||||
|
@ -1084,12 +1088,16 @@
|
||||||
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
|
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
|
||||||
$ ISHFTS( MAXIN ), IACC22( MAXIN )
|
$ ISHFTS( MAXIN ), IACC22( MAXIN )
|
||||||
REAL ALPHA( NMAX ), BETA( NMAX ), DR( NMAX, 12 ),
|
REAL ALPHA( NMAX ), BETA( NMAX ), DR( NMAX, 12 ),
|
||||||
$ RESULT( 500 ), RWORK( LWORK ), S( NMAX*NMAX )
|
$ RESULT( 500 )
|
||||||
COMPLEX A( NMAX*NMAX, NEED ), B( NMAX*NMAX, 5 ),
|
COMPLEX DC( NMAX, 6 ), TAUA( NMAX ), TAUB( NMAX ),
|
||||||
$ C( NCMAX*NCMAX, NCMAX*NCMAX ), DC( NMAX, 6 ),
|
|
||||||
$ TAUA( NMAX ), TAUB( NMAX ), WORK( LWORK ),
|
|
||||||
$ X( 5*NMAX )
|
$ X( 5*NMAX )
|
||||||
* ..
|
* ..
|
||||||
|
* .. Allocatable Arrays ..
|
||||||
|
INTEGER AllocateStatus
|
||||||
|
REAL, DIMENSION(:), ALLOCATABLE :: RWORK, S
|
||||||
|
COMPLEX, DIMENSION(:), ALLOCATABLE :: WORK
|
||||||
|
COMPLEX, DIMENSION(:,:), ALLOCATABLE :: A, B, C
|
||||||
|
* ..
|
||||||
* .. External Functions ..
|
* .. External Functions ..
|
||||||
LOGICAL LSAMEN
|
LOGICAL LSAMEN
|
||||||
REAL SECOND, SLAMCH
|
REAL SECOND, SLAMCH
|
||||||
|
@ -1130,6 +1138,21 @@
|
||||||
DATA INTSTR / '0123456789' /
|
DATA INTSTR / '0123456789' /
|
||||||
DATA IOLDSD / 0, 0, 0, 1 /
|
DATA IOLDSD / 0, 0, 0, 1 /
|
||||||
* ..
|
* ..
|
||||||
|
* .. Allocate memory dynamically ..
|
||||||
|
*
|
||||||
|
ALLOCATE ( S(NMAX*NMAX), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( A(NMAX*NMAX,NEED), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( B(NMAX*NMAX,5), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( C(NCMAX*NCMAX,NCMAX*NCMAX), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( RWORK(LWORK), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( WORK(LWORK), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
* ..
|
||||||
* .. Executable Statements ..
|
* .. Executable Statements ..
|
||||||
*
|
*
|
||||||
A = 0.0
|
A = 0.0
|
||||||
|
@ -1846,8 +1869,16 @@
|
||||||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||||
CALL XLAENV( 1, 1 )
|
CALL XLAENV( 1, 1 )
|
||||||
CALL XLAENV( 9, 25 )
|
CALL XLAENV( 9, 25 )
|
||||||
IF( TSTERR )
|
IF( TSTERR ) THEN
|
||||||
$ CALL CERRST( 'CST', NOUT )
|
#if defined(_OPENMP)
|
||||||
|
N_THREADS = OMP_GET_NUM_THREADS()
|
||||||
|
CALL OMP_SET_NUM_THREADS(1)
|
||||||
|
#endif
|
||||||
|
CALL CERRST( 'CST', NOUT )
|
||||||
|
#if defined(_OPENMP)
|
||||||
|
CALL OMP_SET_NUM_THREADS(N_THREADS)
|
||||||
|
#endif
|
||||||
|
END IF
|
||||||
DO 290 I = 1, NPARMS
|
DO 290 I = 1, NPARMS
|
||||||
CALL XLAENV( 1, NBVAL( I ) )
|
CALL XLAENV( 1, NBVAL( I ) )
|
||||||
CALL XLAENV( 2, NBMIN( I ) )
|
CALL XLAENV( 2, NBMIN( I ) )
|
||||||
|
@ -2305,8 +2336,16 @@
|
||||||
MAXTYP = 15
|
MAXTYP = 15
|
||||||
NTYPES = MIN( MAXTYP, NTYPES )
|
NTYPES = MIN( MAXTYP, NTYPES )
|
||||||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||||
IF( TSTERR )
|
IF( TSTERR ) THEN
|
||||||
$ CALL CERRST( 'CHB', NOUT )
|
#if defined(_OPENMP)
|
||||||
|
N_THREADS = OMP_GET_NUM_THREADS()
|
||||||
|
CALL OMP_SET_NUM_THREADS(1)
|
||||||
|
#endif
|
||||||
|
CALL CERRST( 'CHB', NOUT )
|
||||||
|
#if defined(_OPENMP)
|
||||||
|
CALL OMP_SET_NUM_THREADS(N_THREADS)
|
||||||
|
#endif
|
||||||
|
END IF
|
||||||
* CALL CCHKHB( NN, NVAL, NK, KVAL, MAXTYP, DOTYPE, ISEED, THRESH,
|
* CALL CCHKHB( NN, NVAL, NK, KVAL, MAXTYP, DOTYPE, ISEED, THRESH,
|
||||||
* $ NOUT, A( 1, 1 ), NMAX, DR( 1, 1 ), DR( 1, 2 ),
|
* $ NOUT, A( 1, 1 ), NMAX, DR( 1, 1 ), DR( 1, 2 ),
|
||||||
* $ A( 1, 2 ), NMAX, WORK, LWORK, RWORK, RESULT,
|
* $ A( 1, 2 ), NMAX, WORK, LWORK, RWORK, RESULT,
|
||||||
|
@ -2436,7 +2475,14 @@
|
||||||
380 CONTINUE
|
380 CONTINUE
|
||||||
WRITE( NOUT, FMT = 9994 )
|
WRITE( NOUT, FMT = 9994 )
|
||||||
S2 = SECOND( )
|
S2 = SECOND( )
|
||||||
WRITE( NOUT, FMT = 9993 )S2 - S1
|
WRITE( NOUT, FMT = 9993 )S2 - S1
|
||||||
|
*
|
||||||
|
DEALLOCATE (S, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (A, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (B, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (C, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (RWORK, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (WORK, STAT = AllocateStatus)
|
||||||
*
|
*
|
||||||
9999 FORMAT( / ' Execution not attempted due to input errors' )
|
9999 FORMAT( / ' Execution not attempted due to input errors' )
|
||||||
9997 FORMAT( / / 1X, A3, ': NB =', I4, ', NBMIN =', I4, ', NX =', I4 )
|
9997 FORMAT( / / 1X, A3, ': NB =', I4, ', NBMIN =', I4, ', NX =', I4 )
|
|
@ -1038,7 +1038,11 @@
|
||||||
*> \ingroup double_eig
|
*> \ingroup double_eig
|
||||||
*
|
*
|
||||||
* =====================================================================
|
* =====================================================================
|
||||||
PROGRAM DCHKEE
|
PROGRAM DCHKEE
|
||||||
|
*
|
||||||
|
#if defined(_OPENMP)
|
||||||
|
use omp_lib
|
||||||
|
#endif
|
||||||
*
|
*
|
||||||
* -- LAPACK test routine (version 3.7.0) --
|
* -- LAPACK test routine (version 3.7.0) --
|
||||||
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
||||||
|
@ -1077,7 +1081,7 @@
|
||||||
CHARACTER*80 LINE
|
CHARACTER*80 LINE
|
||||||
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
|
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
|
||||||
$ NK, NN, NPARMS, NRHS, NTYPES,
|
$ NK, NN, NPARMS, NRHS, NTYPES,
|
||||||
$ VERS_MAJOR, VERS_MINOR, VERS_PATCH
|
$ VERS_MAJOR, VERS_MINOR, VERS_PATCH, N_THREADS
|
||||||
DOUBLE PRECISION EPS, S1, S2, THRESH, THRSHN
|
DOUBLE PRECISION EPS, S1, S2, THRESH, THRSHN
|
||||||
* ..
|
* ..
|
||||||
* .. Local Arrays ..
|
* .. Local Arrays ..
|
||||||
|
@ -1089,10 +1093,13 @@
|
||||||
$ PVAL( MAXIN )
|
$ PVAL( MAXIN )
|
||||||
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
|
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
|
||||||
$ ISHFTS( MAXIN ), IACC22( MAXIN )
|
$ ISHFTS( MAXIN ), IACC22( MAXIN )
|
||||||
DOUBLE PRECISION A( NMAX*NMAX, NEED ), B( NMAX*NMAX, 5 ),
|
DOUBLE PRECISION D( NMAX, 12 ), RESULT( 500 ), TAUA( NMAX ),
|
||||||
$ C( NCMAX*NCMAX, NCMAX*NCMAX ), D( NMAX, 12 ),
|
$ TAUB( NMAX ), X( 5*NMAX )
|
||||||
$ RESULT( 500 ), TAUA( NMAX ), TAUB( NMAX ),
|
* ..
|
||||||
$ WORK( LWORK ), X( 5*NMAX )
|
* .. Allocatable Arrays ..
|
||||||
|
INTEGER AllocateStatus
|
||||||
|
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: WORK
|
||||||
|
DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: A, B, C
|
||||||
* ..
|
* ..
|
||||||
* .. External Functions ..
|
* .. External Functions ..
|
||||||
LOGICAL LSAMEN
|
LOGICAL LSAMEN
|
||||||
|
@ -1132,7 +1139,18 @@
|
||||||
* ..
|
* ..
|
||||||
* .. Data statements ..
|
* .. Data statements ..
|
||||||
DATA INTSTR / '0123456789' /
|
DATA INTSTR / '0123456789' /
|
||||||
DATA IOLDSD / 0, 0, 0, 1 /
|
DATA IOLDSD / 0, 0, 0, 1 /
|
||||||
|
* ..
|
||||||
|
* .. Allocate memory dynamically ..
|
||||||
|
*
|
||||||
|
ALLOCATE ( A(NMAX*NMAX,NEED), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( B(NMAX*NMAX,5), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( C(NCMAX*NCMAX,NCMAX*NCMAX), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( WORK(LWORK), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
* ..
|
* ..
|
||||||
* .. Executable Statements ..
|
* .. Executable Statements ..
|
||||||
*
|
*
|
||||||
|
@ -1856,8 +1874,16 @@
|
||||||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||||
CALL XLAENV( 1, 1 )
|
CALL XLAENV( 1, 1 )
|
||||||
CALL XLAENV( 9, 25 )
|
CALL XLAENV( 9, 25 )
|
||||||
IF( TSTERR )
|
IF( TSTERR ) THEN
|
||||||
$ CALL DERRST( 'DST', NOUT )
|
#if defined(_OPENMP)
|
||||||
|
N_THREADS = OMP_GET_NUM_THREADS()
|
||||||
|
CALL OMP_SET_NUM_THREADS(1)
|
||||||
|
#endif
|
||||||
|
CALL DERRST( 'DST', NOUT )
|
||||||
|
#if defined(_OPENMP)
|
||||||
|
CALL OMP_SET_NUM_THREADS(N_THREADS)
|
||||||
|
#endif
|
||||||
|
END IF
|
||||||
DO 290 I = 1, NPARMS
|
DO 290 I = 1, NPARMS
|
||||||
CALL XLAENV( 1, NBVAL( I ) )
|
CALL XLAENV( 1, NBVAL( I ) )
|
||||||
CALL XLAENV( 2, NBMIN( I ) )
|
CALL XLAENV( 2, NBMIN( I ) )
|
||||||
|
@ -2436,7 +2462,12 @@
|
||||||
380 CONTINUE
|
380 CONTINUE
|
||||||
WRITE( NOUT, FMT = 9994 )
|
WRITE( NOUT, FMT = 9994 )
|
||||||
S2 = DSECND( )
|
S2 = DSECND( )
|
||||||
WRITE( NOUT, FMT = 9993 )S2 - S1
|
WRITE( NOUT, FMT = 9993 )S2 - S1
|
||||||
|
*
|
||||||
|
DEALLOCATE (A, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (B, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (C, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (WORK, STAT = AllocateStatus)
|
||||||
*
|
*
|
||||||
9999 FORMAT( / ' Execution not attempted due to input errors' )
|
9999 FORMAT( / ' Execution not attempted due to input errors' )
|
||||||
9997 FORMAT( / / 1X, A3, ': NB =', I4, ', NBMIN =', I4, ', NX =', I4 )
|
9997 FORMAT( / / 1X, A3, ': NB =', I4, ', NBMIN =', I4, ', NX =', I4 )
|
|
@ -1040,6 +1040,10 @@
|
||||||
* =====================================================================
|
* =====================================================================
|
||||||
PROGRAM SCHKEE
|
PROGRAM SCHKEE
|
||||||
*
|
*
|
||||||
|
#if defined(_OPENMP)
|
||||||
|
use omp_lib
|
||||||
|
#endif
|
||||||
|
*
|
||||||
* -- LAPACK test routine (version 3.7.0) --
|
* -- LAPACK test routine (version 3.7.0) --
|
||||||
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
||||||
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
@ -1077,7 +1081,7 @@
|
||||||
CHARACTER*80 LINE
|
CHARACTER*80 LINE
|
||||||
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
|
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
|
||||||
$ NK, NN, NPARMS, NRHS, NTYPES,
|
$ NK, NN, NPARMS, NRHS, NTYPES,
|
||||||
$ VERS_MAJOR, VERS_MINOR, VERS_PATCH
|
$ VERS_MAJOR, VERS_MINOR, VERS_PATCH, N_THREADS
|
||||||
REAL EPS, S1, S2, THRESH, THRSHN
|
REAL EPS, S1, S2, THRESH, THRSHN
|
||||||
* ..
|
* ..
|
||||||
* .. Local Arrays ..
|
* .. Local Arrays ..
|
||||||
|
@ -1089,10 +1093,13 @@
|
||||||
$ PVAL( MAXIN )
|
$ PVAL( MAXIN )
|
||||||
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
|
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
|
||||||
$ ISHFTS( MAXIN ), IACC22( MAXIN )
|
$ ISHFTS( MAXIN ), IACC22( MAXIN )
|
||||||
REAL A( NMAX*NMAX, NEED ), B( NMAX*NMAX, 5 ),
|
REAL D( NMAX, 12 ), RESULT( 500 ), TAUA( NMAX ),
|
||||||
$ C( NCMAX*NCMAX, NCMAX*NCMAX ), D( NMAX, 12 ),
|
$ TAUB( NMAX ), X( 5*NMAX )
|
||||||
$ RESULT( 500 ), TAUA( NMAX ), TAUB( NMAX ),
|
* ..
|
||||||
$ WORK( LWORK ), X( 5*NMAX )
|
* .. Allocatable Arrays ..
|
||||||
|
INTEGER AllocateStatus
|
||||||
|
REAL, DIMENSION(:), ALLOCATABLE :: WORK
|
||||||
|
REAL, DIMENSION(:,:), ALLOCATABLE :: A, B, C
|
||||||
* ..
|
* ..
|
||||||
* .. External Functions ..
|
* .. External Functions ..
|
||||||
LOGICAL LSAMEN
|
LOGICAL LSAMEN
|
||||||
|
@ -1132,7 +1139,18 @@
|
||||||
* ..
|
* ..
|
||||||
* .. Data statements ..
|
* .. Data statements ..
|
||||||
DATA INTSTR / '0123456789' /
|
DATA INTSTR / '0123456789' /
|
||||||
DATA IOLDSD / 0, 0, 0, 1 /
|
DATA IOLDSD / 0, 0, 0, 1 /
|
||||||
|
* ..
|
||||||
|
* .. Allocate memory dynamically ..
|
||||||
|
*
|
||||||
|
ALLOCATE ( A(NMAX*NMAX,NEED), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( B(NMAX*NMAX,5), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( C(NCMAX*NCMAX,NCMAX*NCMAX), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( WORK(LWORK), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
* ..
|
* ..
|
||||||
* .. Executable Statements ..
|
* .. Executable Statements ..
|
||||||
*
|
*
|
||||||
|
@ -1857,8 +1875,16 @@
|
||||||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||||
CALL XLAENV( 1, 1 )
|
CALL XLAENV( 1, 1 )
|
||||||
CALL XLAENV( 9, 25 )
|
CALL XLAENV( 9, 25 )
|
||||||
IF( TSTERR )
|
IF( TSTERR ) THEN
|
||||||
$ CALL SERRST( 'SST', NOUT )
|
#if defined(_OPENMP)
|
||||||
|
N_THREADS = OMP_GET_NUM_THREADS()
|
||||||
|
CALL OMP_SET_NUM_THREADS(1)
|
||||||
|
#endif
|
||||||
|
CALL SERRST( 'SST', NOUT )
|
||||||
|
#if defined(_OPENMP)
|
||||||
|
CALL OMP_SET_NUM_THREADS(N_THREADS)
|
||||||
|
#endif
|
||||||
|
END IF
|
||||||
DO 290 I = 1, NPARMS
|
DO 290 I = 1, NPARMS
|
||||||
CALL XLAENV( 1, NBVAL( I ) )
|
CALL XLAENV( 1, NBVAL( I ) )
|
||||||
CALL XLAENV( 2, NBMIN( I ) )
|
CALL XLAENV( 2, NBMIN( I ) )
|
||||||
|
@ -2440,6 +2466,11 @@
|
||||||
WRITE( NOUT, FMT = 9994 )
|
WRITE( NOUT, FMT = 9994 )
|
||||||
S2 = SECOND( )
|
S2 = SECOND( )
|
||||||
WRITE( NOUT, FMT = 9993 )S2 - S1
|
WRITE( NOUT, FMT = 9993 )S2 - S1
|
||||||
|
*
|
||||||
|
DEALLOCATE (A, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (B, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (C, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (WORK, STAT = AllocateStatus)
|
||||||
*
|
*
|
||||||
9999 FORMAT( / ' Execution not attempted due to input errors' )
|
9999 FORMAT( / ' Execution not attempted due to input errors' )
|
||||||
9997 FORMAT( / / 1X, A3, ': NB =', I4, ', NBMIN =', I4, ', NX =', I4 )
|
9997 FORMAT( / / 1X, A3, ': NB =', I4, ', NBMIN =', I4, ', NX =', I4 )
|
|
@ -1034,6 +1034,10 @@
|
||||||
* =====================================================================
|
* =====================================================================
|
||||||
PROGRAM ZCHKEE
|
PROGRAM ZCHKEE
|
||||||
*
|
*
|
||||||
|
#if defined(_OPENMP)
|
||||||
|
use omp_lib
|
||||||
|
#endif
|
||||||
|
*
|
||||||
* -- LAPACK test routine (version 3.7.0) --
|
* -- LAPACK test routine (version 3.7.0) --
|
||||||
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
||||||
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||||
|
@ -1071,7 +1075,7 @@
|
||||||
CHARACTER*80 LINE
|
CHARACTER*80 LINE
|
||||||
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
|
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
|
||||||
$ NK, NN, NPARMS, NRHS, NTYPES,
|
$ NK, NN, NPARMS, NRHS, NTYPES,
|
||||||
$ VERS_MAJOR, VERS_MINOR, VERS_PATCH
|
$ VERS_MAJOR, VERS_MINOR, VERS_PATCH, N_THREADS
|
||||||
DOUBLE PRECISION EPS, S1, S2, THRESH, THRSHN
|
DOUBLE PRECISION EPS, S1, S2, THRESH, THRSHN
|
||||||
* ..
|
* ..
|
||||||
* .. Local Arrays ..
|
* .. Local Arrays ..
|
||||||
|
@ -1084,12 +1088,16 @@
|
||||||
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
|
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
|
||||||
$ ISHFTS( MAXIN ), IACC22( MAXIN )
|
$ ISHFTS( MAXIN ), IACC22( MAXIN )
|
||||||
DOUBLE PRECISION ALPHA( NMAX ), BETA( NMAX ), DR( NMAX, 12 ),
|
DOUBLE PRECISION ALPHA( NMAX ), BETA( NMAX ), DR( NMAX, 12 ),
|
||||||
$ RESULT( 500 ), RWORK( LWORK ), S( NMAX*NMAX )
|
$ RESULT( 500 )
|
||||||
COMPLEX*16 A( NMAX*NMAX, NEED ), B( NMAX*NMAX, 5 ),
|
COMPLEX*16 DC( NMAX, 6 ), TAUA( NMAX ), TAUB( NMAX ),
|
||||||
$ C( NCMAX*NCMAX, NCMAX*NCMAX ), DC( NMAX, 6 ),
|
|
||||||
$ TAUA( NMAX ), TAUB( NMAX ), WORK( LWORK ),
|
|
||||||
$ X( 5*NMAX )
|
$ X( 5*NMAX )
|
||||||
* ..
|
* ..
|
||||||
|
* .. Allocatable Arrays ..
|
||||||
|
INTEGER AllocateStatus
|
||||||
|
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: RWORK, S
|
||||||
|
COMPLEX*16, DIMENSION(:), ALLOCATABLE :: WORK
|
||||||
|
COMPLEX*16, DIMENSION(:,:), ALLOCATABLE :: A, B, C
|
||||||
|
* ..
|
||||||
* .. External Functions ..
|
* .. External Functions ..
|
||||||
LOGICAL LSAMEN
|
LOGICAL LSAMEN
|
||||||
DOUBLE PRECISION DLAMCH, DSECND
|
DOUBLE PRECISION DLAMCH, DSECND
|
||||||
|
@ -1130,6 +1138,21 @@
|
||||||
DATA INTSTR / '0123456789' /
|
DATA INTSTR / '0123456789' /
|
||||||
DATA IOLDSD / 0, 0, 0, 1 /
|
DATA IOLDSD / 0, 0, 0, 1 /
|
||||||
* ..
|
* ..
|
||||||
|
* .. Allocate memory dynamically ..
|
||||||
|
*
|
||||||
|
ALLOCATE ( S(NMAX*NMAX), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( A(NMAX*NMAX,NEED), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( B(NMAX*NMAX,5), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( C(NCMAX*NCMAX,NCMAX*NCMAX), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( RWORK(LWORK), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( WORK(LWORK), STAT = AllocateStatus )
|
||||||
|
IF (AllocateStatus /= 0) STOP "*** Not enough memory ***"
|
||||||
|
* ..
|
||||||
* .. Executable Statements ..
|
* .. Executable Statements ..
|
||||||
*
|
*
|
||||||
A = 0.0
|
A = 0.0
|
||||||
|
@ -1846,8 +1869,16 @@
|
||||||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||||
CALL XLAENV( 1, 1 )
|
CALL XLAENV( 1, 1 )
|
||||||
CALL XLAENV( 9, 25 )
|
CALL XLAENV( 9, 25 )
|
||||||
IF( TSTERR )
|
IF( TSTERR ) THEN
|
||||||
$ CALL ZERRST( 'ZST', NOUT )
|
#if defined(_OPENMP)
|
||||||
|
N_THREADS = OMP_GET_NUM_THREADS()
|
||||||
|
CALL OMP_SET_NUM_THREADS(1)
|
||||||
|
#endif
|
||||||
|
CALL ZERRST( 'ZST', NOUT )
|
||||||
|
#if defined(_OPENMP)
|
||||||
|
CALL OMP_SET_NUM_THREADS(N_THREADS)
|
||||||
|
#endif
|
||||||
|
END IF
|
||||||
DO 290 I = 1, NPARMS
|
DO 290 I = 1, NPARMS
|
||||||
CALL XLAENV( 1, NBVAL( I ) )
|
CALL XLAENV( 1, NBVAL( I ) )
|
||||||
CALL XLAENV( 2, NBMIN( I ) )
|
CALL XLAENV( 2, NBMIN( I ) )
|
||||||
|
@ -2303,8 +2334,16 @@
|
||||||
MAXTYP = 15
|
MAXTYP = 15
|
||||||
NTYPES = MIN( MAXTYP, NTYPES )
|
NTYPES = MIN( MAXTYP, NTYPES )
|
||||||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||||
IF( TSTERR )
|
IF( TSTERR ) THEN
|
||||||
$ CALL ZERRST( 'ZHB', NOUT )
|
#if defined(_OPENMP)
|
||||||
|
N_THREADS = OMP_GET_NUM_THREADS()
|
||||||
|
CALL OMP_SET_NUM_THREADS(1)
|
||||||
|
#endif
|
||||||
|
CALL ZERRST( 'ZHB', NOUT )
|
||||||
|
#if defined(_OPENMP)
|
||||||
|
CALL OMP_SET_NUM_THREADS(N_THREADS)
|
||||||
|
#endif
|
||||||
|
END IF
|
||||||
* CALL ZCHKHB( NN, NVAL, NK, KVAL, MAXTYP, DOTYPE, ISEED, THRESH,
|
* CALL ZCHKHB( NN, NVAL, NK, KVAL, MAXTYP, DOTYPE, ISEED, THRESH,
|
||||||
* $ NOUT, A( 1, 1 ), NMAX, DR( 1, 1 ), DR( 1, 2 ),
|
* $ NOUT, A( 1, 1 ), NMAX, DR( 1, 1 ), DR( 1, 2 ),
|
||||||
* $ A( 1, 2 ), NMAX, WORK, LWORK, RWORK, RESULT,
|
* $ A( 1, 2 ), NMAX, WORK, LWORK, RWORK, RESULT,
|
||||||
|
@ -2435,6 +2474,13 @@
|
||||||
WRITE( NOUT, FMT = 9994 )
|
WRITE( NOUT, FMT = 9994 )
|
||||||
S2 = DSECND( )
|
S2 = DSECND( )
|
||||||
WRITE( NOUT, FMT = 9993 )S2 - S1
|
WRITE( NOUT, FMT = 9993 )S2 - S1
|
||||||
|
*
|
||||||
|
DEALLOCATE (S, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (A, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (B, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (C, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (RWORK, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (WORK, STAT = AllocateStatus)
|
||||||
*
|
*
|
||||||
9999 FORMAT( / ' Execution not attempted due to input errors' )
|
9999 FORMAT( / ' Execution not attempted due to input errors' )
|
||||||
9997 FORMAT( / / 1X, A3, ': NB =', I4, ', NBMIN =', I4, ', NX =', I4 )
|
9997 FORMAT( / / 1X, A3, ': NB =', I4, ', NBMIN =', I4, ', NX =', I4 )
|
Loading…
Reference in New Issue