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
|
||||
ssvdch.f ssvdct.f ssxt1.f)
|
||||
|
||||
set(SEIGTST schkee.f
|
||||
set(SEIGTST schkee.F
|
||||
sbdt01.f sbdt02.f sbdt03.f sbdt04.f sbdt05.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
|
||||
|
@ -42,7 +42,7 @@ set(SEIGTST schkee.f
|
|||
sort03.f ssbt21.f ssgt01.f sslect.f sspt21.f sstt21.f
|
||||
sstt22.f ssyt21.f ssyt22.f)
|
||||
|
||||
set(CEIGTST cchkee.f
|
||||
set(CEIGTST cchkee.F
|
||||
cbdt01.f cbdt02.f cbdt03.f cbdt05.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
|
||||
|
@ -62,7 +62,7 @@ set(CEIGTST cchkee.f
|
|||
set(DZIGTST dlafts.f dlahd2.f dlasum.f dlatb9.f dstech.f dstect.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
|
||||
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
|
||||
|
@ -79,7 +79,7 @@ set(DEIGTST dchkee.f
|
|||
dort03.f dsbt21.f dsgt01.f dslect.f dspt21.f dstt21.f
|
||||
dstt22.f dsyt21.f dsyt22.f)
|
||||
|
||||
set(ZEIGTST zchkee.f
|
||||
set(ZEIGTST zchkee.F
|
||||
zbdt01.f zbdt02.f zbdt03.f zbdt05.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
|
||||
|
|
|
@ -157,11 +157,11 @@ cleanobj:
|
|||
cleanexe:
|
||||
rm -f xeigtst*
|
||||
|
||||
schkee.o: schkee.f
|
||||
schkee.o: schkee.F
|
||||
$(FC) $(FFLAGS_DRV) -c -o $@ $<
|
||||
dchkee.o: dchkee.f
|
||||
dchkee.o: dchkee.F
|
||||
$(FC) $(FFLAGS_DRV) -c -o $@ $<
|
||||
cchkee.o: cchkee.f
|
||||
cchkee.o: cchkee.F
|
||||
$(FC) $(FFLAGS_DRV) -c -o $@ $<
|
||||
zchkee.o: zchkee.f
|
||||
zchkee.o: zchkee.F
|
||||
$(FC) $(FFLAGS_DRV) -c -o $@ $<
|
||||
|
|
|
@ -1034,6 +1034,10 @@
|
|||
* =====================================================================
|
||||
PROGRAM CCHKEE
|
||||
*
|
||||
#if defined(_OPENMP)
|
||||
use omp_lib
|
||||
#endif
|
||||
*
|
||||
* -- LAPACK test routine (version 3.7.0) --
|
||||
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
||||
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||
|
@ -1071,7 +1075,7 @@
|
|||
CHARACTER*80 LINE
|
||||
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
|
||||
$ 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
|
||||
* ..
|
||||
* .. Local Arrays ..
|
||||
|
@ -1084,12 +1088,16 @@
|
|||
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
|
||||
$ ISHFTS( MAXIN ), IACC22( MAXIN )
|
||||
REAL ALPHA( NMAX ), BETA( NMAX ), DR( NMAX, 12 ),
|
||||
$ RESULT( 500 ), RWORK( LWORK ), S( NMAX*NMAX )
|
||||
COMPLEX A( NMAX*NMAX, NEED ), B( NMAX*NMAX, 5 ),
|
||||
$ C( NCMAX*NCMAX, NCMAX*NCMAX ), DC( NMAX, 6 ),
|
||||
$ TAUA( NMAX ), TAUB( NMAX ), WORK( LWORK ),
|
||||
$ RESULT( 500 )
|
||||
COMPLEX DC( NMAX, 6 ), TAUA( NMAX ), TAUB( 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 ..
|
||||
LOGICAL LSAMEN
|
||||
REAL SECOND, SLAMCH
|
||||
|
@ -1130,6 +1138,21 @@
|
|||
DATA INTSTR / '0123456789' /
|
||||
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 ..
|
||||
*
|
||||
A = 0.0
|
||||
|
@ -1846,8 +1869,16 @@
|
|||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||
CALL XLAENV( 1, 1 )
|
||||
CALL XLAENV( 9, 25 )
|
||||
IF( TSTERR )
|
||||
$ CALL CERRST( 'CST', NOUT )
|
||||
IF( TSTERR ) THEN
|
||||
#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
|
||||
CALL XLAENV( 1, NBVAL( I ) )
|
||||
CALL XLAENV( 2, NBMIN( I ) )
|
||||
|
@ -2305,8 +2336,16 @@
|
|||
MAXTYP = 15
|
||||
NTYPES = MIN( MAXTYP, NTYPES )
|
||||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||
IF( TSTERR )
|
||||
$ CALL CERRST( 'CHB', NOUT )
|
||||
IF( TSTERR ) THEN
|
||||
#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,
|
||||
* $ NOUT, A( 1, 1 ), NMAX, DR( 1, 1 ), DR( 1, 2 ),
|
||||
* $ A( 1, 2 ), NMAX, WORK, LWORK, RWORK, RESULT,
|
||||
|
@ -2436,7 +2475,14 @@
|
|||
380 CONTINUE
|
||||
WRITE( NOUT, FMT = 9994 )
|
||||
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' )
|
||||
9997 FORMAT( / / 1X, A3, ': NB =', I4, ', NBMIN =', I4, ', NX =', I4 )
|
|
@ -1038,7 +1038,11 @@
|
|||
*> \ingroup double_eig
|
||||
*
|
||||
* =====================================================================
|
||||
PROGRAM DCHKEE
|
||||
PROGRAM DCHKEE
|
||||
*
|
||||
#if defined(_OPENMP)
|
||||
use omp_lib
|
||||
#endif
|
||||
*
|
||||
* -- LAPACK test routine (version 3.7.0) --
|
||||
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
||||
|
@ -1077,7 +1081,7 @@
|
|||
CHARACTER*80 LINE
|
||||
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
|
||||
$ 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
|
||||
* ..
|
||||
* .. Local Arrays ..
|
||||
|
@ -1089,10 +1093,13 @@
|
|||
$ PVAL( MAXIN )
|
||||
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
|
||||
$ ISHFTS( MAXIN ), IACC22( MAXIN )
|
||||
DOUBLE PRECISION A( NMAX*NMAX, NEED ), B( NMAX*NMAX, 5 ),
|
||||
$ C( NCMAX*NCMAX, NCMAX*NCMAX ), D( NMAX, 12 ),
|
||||
$ RESULT( 500 ), TAUA( NMAX ), TAUB( NMAX ),
|
||||
$ WORK( LWORK ), X( 5*NMAX )
|
||||
DOUBLE PRECISION D( NMAX, 12 ), RESULT( 500 ), TAUA( NMAX ),
|
||||
$ TAUB( NMAX ), X( 5*NMAX )
|
||||
* ..
|
||||
* .. Allocatable Arrays ..
|
||||
INTEGER AllocateStatus
|
||||
DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: WORK
|
||||
DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: A, B, C
|
||||
* ..
|
||||
* .. External Functions ..
|
||||
LOGICAL LSAMEN
|
||||
|
@ -1132,7 +1139,18 @@
|
|||
* ..
|
||||
* .. Data statements ..
|
||||
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 ..
|
||||
*
|
||||
|
@ -1856,8 +1874,16 @@
|
|||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||
CALL XLAENV( 1, 1 )
|
||||
CALL XLAENV( 9, 25 )
|
||||
IF( TSTERR )
|
||||
$ CALL DERRST( 'DST', NOUT )
|
||||
IF( TSTERR ) THEN
|
||||
#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
|
||||
CALL XLAENV( 1, NBVAL( I ) )
|
||||
CALL XLAENV( 2, NBMIN( I ) )
|
||||
|
@ -2436,7 +2462,12 @@
|
|||
380 CONTINUE
|
||||
WRITE( NOUT, FMT = 9994 )
|
||||
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' )
|
||||
9997 FORMAT( / / 1X, A3, ': NB =', I4, ', NBMIN =', I4, ', NX =', I4 )
|
|
@ -1040,6 +1040,10 @@
|
|||
* =====================================================================
|
||||
PROGRAM SCHKEE
|
||||
*
|
||||
#if defined(_OPENMP)
|
||||
use omp_lib
|
||||
#endif
|
||||
*
|
||||
* -- LAPACK test routine (version 3.7.0) --
|
||||
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
||||
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||
|
@ -1077,7 +1081,7 @@
|
|||
CHARACTER*80 LINE
|
||||
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
|
||||
$ 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
|
||||
* ..
|
||||
* .. Local Arrays ..
|
||||
|
@ -1089,10 +1093,13 @@
|
|||
$ PVAL( MAXIN )
|
||||
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
|
||||
$ ISHFTS( MAXIN ), IACC22( MAXIN )
|
||||
REAL A( NMAX*NMAX, NEED ), B( NMAX*NMAX, 5 ),
|
||||
$ C( NCMAX*NCMAX, NCMAX*NCMAX ), D( NMAX, 12 ),
|
||||
$ RESULT( 500 ), TAUA( NMAX ), TAUB( NMAX ),
|
||||
$ WORK( LWORK ), X( 5*NMAX )
|
||||
REAL D( NMAX, 12 ), RESULT( 500 ), TAUA( NMAX ),
|
||||
$ TAUB( NMAX ), X( 5*NMAX )
|
||||
* ..
|
||||
* .. Allocatable Arrays ..
|
||||
INTEGER AllocateStatus
|
||||
REAL, DIMENSION(:), ALLOCATABLE :: WORK
|
||||
REAL, DIMENSION(:,:), ALLOCATABLE :: A, B, C
|
||||
* ..
|
||||
* .. External Functions ..
|
||||
LOGICAL LSAMEN
|
||||
|
@ -1132,7 +1139,18 @@
|
|||
* ..
|
||||
* .. Data statements ..
|
||||
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 ..
|
||||
*
|
||||
|
@ -1857,8 +1875,16 @@
|
|||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||
CALL XLAENV( 1, 1 )
|
||||
CALL XLAENV( 9, 25 )
|
||||
IF( TSTERR )
|
||||
$ CALL SERRST( 'SST', NOUT )
|
||||
IF( TSTERR ) THEN
|
||||
#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
|
||||
CALL XLAENV( 1, NBVAL( I ) )
|
||||
CALL XLAENV( 2, NBMIN( I ) )
|
||||
|
@ -2440,6 +2466,11 @@
|
|||
WRITE( NOUT, FMT = 9994 )
|
||||
S2 = SECOND( )
|
||||
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' )
|
||||
9997 FORMAT( / / 1X, A3, ': NB =', I4, ', NBMIN =', I4, ', NX =', I4 )
|
|
@ -1034,6 +1034,10 @@
|
|||
* =====================================================================
|
||||
PROGRAM ZCHKEE
|
||||
*
|
||||
#if defined(_OPENMP)
|
||||
use omp_lib
|
||||
#endif
|
||||
*
|
||||
* -- LAPACK test routine (version 3.7.0) --
|
||||
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
||||
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||||
|
@ -1071,7 +1075,7 @@
|
|||
CHARACTER*80 LINE
|
||||
INTEGER I, I1, IC, INFO, ITMP, K, LENP, MAXTYP, NEWSD,
|
||||
$ 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
|
||||
* ..
|
||||
* .. Local Arrays ..
|
||||
|
@ -1084,12 +1088,16 @@
|
|||
INTEGER INMIN( MAXIN ), INWIN( MAXIN ), INIBL( MAXIN ),
|
||||
$ ISHFTS( MAXIN ), IACC22( MAXIN )
|
||||
DOUBLE PRECISION ALPHA( NMAX ), BETA( NMAX ), DR( NMAX, 12 ),
|
||||
$ RESULT( 500 ), RWORK( LWORK ), S( NMAX*NMAX )
|
||||
COMPLEX*16 A( NMAX*NMAX, NEED ), B( NMAX*NMAX, 5 ),
|
||||
$ C( NCMAX*NCMAX, NCMAX*NCMAX ), DC( NMAX, 6 ),
|
||||
$ TAUA( NMAX ), TAUB( NMAX ), WORK( LWORK ),
|
||||
$ RESULT( 500 )
|
||||
COMPLEX*16 DC( NMAX, 6 ), TAUA( NMAX ), TAUB( 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 ..
|
||||
LOGICAL LSAMEN
|
||||
DOUBLE PRECISION DLAMCH, DSECND
|
||||
|
@ -1130,6 +1138,21 @@
|
|||
DATA INTSTR / '0123456789' /
|
||||
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 ..
|
||||
*
|
||||
A = 0.0
|
||||
|
@ -1846,8 +1869,16 @@
|
|||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||
CALL XLAENV( 1, 1 )
|
||||
CALL XLAENV( 9, 25 )
|
||||
IF( TSTERR )
|
||||
$ CALL ZERRST( 'ZST', NOUT )
|
||||
IF( TSTERR ) THEN
|
||||
#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
|
||||
CALL XLAENV( 1, NBVAL( I ) )
|
||||
CALL XLAENV( 2, NBMIN( I ) )
|
||||
|
@ -2303,8 +2334,16 @@
|
|||
MAXTYP = 15
|
||||
NTYPES = MIN( MAXTYP, NTYPES )
|
||||
CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
|
||||
IF( TSTERR )
|
||||
$ CALL ZERRST( 'ZHB', NOUT )
|
||||
IF( TSTERR ) THEN
|
||||
#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,
|
||||
* $ NOUT, A( 1, 1 ), NMAX, DR( 1, 1 ), DR( 1, 2 ),
|
||||
* $ A( 1, 2 ), NMAX, WORK, LWORK, RWORK, RESULT,
|
||||
|
@ -2435,6 +2474,13 @@
|
|||
WRITE( NOUT, FMT = 9994 )
|
||||
S2 = DSECND( )
|
||||
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' )
|
||||
9997 FORMAT( / / 1X, A3, ': NB =', I4, ', NBMIN =', I4, ', NX =', I4 )
|
Loading…
Reference in New Issue