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 | 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 ) | |||||
| 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 ) | $ 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 ) | |||||
| $ 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 | 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 ) | |||||
| $ 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, | * 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 ), | |||||
| $ 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 .. | * .. 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 ) | |||||
| $ 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 | 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 ), | |||||
| $ 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 .. | * .. 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 ) | |||||
| $ 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 | 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 ) | |||||
| 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 ) | $ 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 ) | |||||
| $ 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 | 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 ) | |||||
| $ 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, | * 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 ) | ||||