Fix unusual stack size requirements of the LAPACK EIG tests (from Reference-LAPACK PR 335)tags/v0.3.14^2
| @@ -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 ) | |||