diff --git a/MY_RUN/KTEST/003_KW78/007_ncl_diag/visu_KW78_diag.png b/MY_RUN/KTEST/003_KW78/007_ncl_diag/visu_KW78_diag.png deleted file mode 100644 index 52376e3401b394d812df4f65ff6341216c741e5e..0000000000000000000000000000000000000000 Binary files a/MY_RUN/KTEST/003_KW78/007_ncl_diag/visu_KW78_diag.png and /dev/null differ diff --git a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/run_arp2lfi_xyz b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/run_arp2lfi_xyz index f3fa9bc8b7f3f58446df1b18b736ff43a76e39fa..26659113d21b4d6c1b6688abcb2c87428f1d9ca7 100755 --- a/MY_RUN/KTEST/007_16janvier/004_arp2lfi/run_arp2lfi_xyz +++ b/MY_RUN/KTEST/007_16janvier/004_arp2lfi/run_arp2lfi_xyz @@ -5,7 +5,7 @@ #MNH_LIC for details. version 1. set -x set -e -export GRIB_DEFINITION_PATH=$SRC_MESONH/src/LIB/grib_api-1.13.1/definitions +#export GRIB_DEFINITION_PATH=$SRC_MESONH/src/LIB/${VERSION_GRIBAPI}/definitions rm -f 16JAN* OUTPUT_LISTING* pipe* *.tex ln -sf ../003_nest/16JAN98_36km.neste1.{des,lfi,nc} . time ${MPIRUN} PREP_REAL_CASE${XYZ} diff --git a/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/run_arp2lfi_xyz b/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/run_arp2lfi_xyz index 5384cead2f0c7946666800c0f2ad72255bbe34ac..532715ce63d033caf228a45474b8719441cd10ab 100755 --- a/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/run_arp2lfi_xyz +++ b/MY_RUN/KTEST/009_ICARTT/002_arp2lfi/run_arp2lfi_xyz @@ -8,7 +8,7 @@ set -e CHIMIE_FILES=${CHIMIE_FILES:-"$HOME/CHIMIE_FILES"} ; export CHIMIE_FILES ln -sf ${CHIMIE_FILES}/*.20040810.18* . -export GRIB_DEFINITION_PATH=$SRC_MESONH/src/LIB/grib_api-1.13.1/definitions +#export GRIB_DEFINITION_PATH=$SRC_MESONH/src/LIB/grib_api-1.13.1/definitions rm -f ICART* CPLCH20040810.18.* OUTPUT_LISTING* pipe* ln -sf ../001_pgd1/ICARTT1008_PGD_15km.{des,lfi,nc} . diff --git a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz index 3fd7d9e9ae2061c2d78379b41948911702d1d948..cec646c907d63e85dcd99ba275d444432eea9a2e 100755 --- a/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz +++ b/MY_RUN/KTEST/012_dust/002_ecmwf2lfi/run_ecmwf2lfi_xyz @@ -15,7 +15,7 @@ done # # # -export GRIB_DEFINITION_PATH=$SRC_MESONH/src/LIB/grib_api-1.13.1/definitions +#export GRIB_DEFINITION_PATH=$SRC_MESONH/src/LIB/grib_api-1.13.1/definitions ln -sf ../001_pgd1/pgd_dust_30km.{des,lfi,nc} . rm -f S702000092* OUTPUT_LISTING* pipe* *.tex diff --git a/pub/README_NCL630 b/pub/README_NCL630 deleted file mode 100644 index 7cd683456b9218d7463dd15537521f33a7851356..0000000000000000000000000000000000000000 --- a/pub/README_NCL630 +++ /dev/null @@ -1,2 +0,0 @@ -ncl-6.3.0.tar.gz is ncl_ncarg-6.3.0.Linux_RHEL6.4_x86_64_nodap_gcc472.tar.gz -repackaged in directory ncl-6.3.0 for easer installation diff --git a/pub/README_NCL640 b/pub/README_NCL640 new file mode 100644 index 0000000000000000000000000000000000000000..99f7bb6023753b4e9569b00b2b6b8f629ba06323 --- /dev/null +++ b/pub/README_NCL640 @@ -0,0 +1,2 @@ +ncl-6.4.0.tar.gz is ncl_ncarg-6.4.0-RHEL6.4_64bit_nodap_gnu447.tar.gz +repackaged in directory ncl-6.4.0 for easer installation diff --git a/pub/ncl-6.3.0.tar.gz b/pub/ncl-6.3.0.tar.gz deleted file mode 100644 index 4980a595ed0e1622e5dceb4b8dd15d1fe7bc2143..0000000000000000000000000000000000000000 --- a/pub/ncl-6.3.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:12b51b5ebd5176ceb5453a781a0e3a9d27f46b3b7c4a8c370e8595e9ab977965 -size 75123427 diff --git a/pub/ncl-6.4.0.tar.gz b/pub/ncl-6.4.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..ddc40984bc572e56619156897a7b7043c443cd1a --- /dev/null +++ b/pub/ncl-6.4.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ae930159cb4d1050c8a1e6b69b9b9661d5a21490cad233abc0655d02bf3e1b8 +size 88827595 diff --git a/src/LIB/grib_api-1.13.1.tar.gz b/src/LIB/grib_api-1.13.1.tar.gz deleted file mode 100644 index b6cc2e3314cd33febd82340ff4575d839a0e3ea3..0000000000000000000000000000000000000000 --- a/src/LIB/grib_api-1.13.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aa66c4d744f3073b06792c0e6299fcae99aa2a921f8b59a9ccd9056bf26baf5f -size 14947384 diff --git a/src/LIB/grib_api-1.26.0-Source.tar.gz b/src/LIB/grib_api-1.26.0-Source.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..149f53758041541499365601725a91107114d57d --- /dev/null +++ b/src/LIB/grib_api-1.26.0-Source.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ca45544c54a3a67de78a62663d4be6be8d9c95a63f1bd30fcb4c14588ac9501 +size 4857336 diff --git a/src/MNH/lima_warm_nucl.f90 b/src/MNH/lima_warm_nucl.f90 index c74c42275f65328dace58c816f9dbec61e183e83..ba6c961248a6bb464d6cfc2b6aa2f9edb577e917 100644 --- a/src/MNH/lima_warm_nucl.f90 +++ b/src/MNH/lima_warm_nucl.f90 @@ -306,7 +306,7 @@ IF( INUCT >= 1 ) THEN ! Remark : in LIMA's nucleation parameterization, Smax=0.01 for a supersaturation of 1% ! ! ! - ZVEC1(:) = MAX( 1.00001, MIN( FLOAT(NAHEN)-0.00001, & + ZVEC1(:) = MAX( ( 1.0 + 10.0 * XMNH_EPSILON ), MIN( FLOAT(NAHEN)*( 1.0 - 10.0 * XMNH_EPSILON ), & XAHENINTP1 * ZZT(:) + XAHENINTP2 ) ) IVEC1(:) = INT( ZVEC1(:) ) ZVEC1(:) = ZVEC1(:) - FLOAT( IVEC1(:) ) @@ -392,7 +392,7 @@ IF( INUCT >= 1 ) THEN ! Modified values for Beta and C (see in init_aerosol_properties) account for that ! WHERE (ZZW5(:) > 0. .AND. ZSMAX(:) > 0.) - ZVEC1(:) = MAX( 1.00001, MIN( FLOAT(NHYP)-0.00001, & + ZVEC1(:) = MAX( ( 1.0 + 10.0 * XMNH_EPSILON ), MIN( FLOAT(NHYP)*( 1.0 - 10.0 * XMNH_EPSILON ), & XHYPINTP1*LOG(ZSMAX(:))+XHYPINTP2 ) ) IVEC1(:) = INT( ZVEC1(:) ) ZVEC1(:) = ZVEC1(:) - FLOAT( IVEC1(:) ) @@ -791,7 +791,7 @@ REAL :: PZVEC1 INTEGER :: PIVEC1 ! PSINGL_FUNCSMAX = 0. -PZVEC1 = MAX( 1.00001,MIN( FLOAT(NHYP)-0.00001, & +PZVEC1 = MAX( ( 1.0 + 10.0 * XMNH_EPSILON ),MIN( FLOAT(NHYP)*( 1.0 - 10.0 * XMNH_EPSILON ), & XHYPINTP1*LOG(PPZSMAX)+XHYPINTP2 ) ) PIVEC1 = INT( PZVEC1 ) PZVEC1 = PZVEC1 - FLOAT( PIVEC1 ) diff --git a/src/SURFEX/dgam.F90 b/src/SURFEX/dgam.F90 index 52addb0060ff4b0bccb530de1aa9dc36436b8e1c..2a0690870001cb81452f2d2765c34b1866fb2575 100644 --- a/src/SURFEX/dgam.F90 +++ b/src/SURFEX/dgam.F90 @@ -125,6 +125,7 @@ !! MODIFICATIONS !! ------------- !!J.Escobar10/06/2013: replace DOUBLE PRECISION by REAL to handle problem for promotion of real on IBM SP +!!J.Escobar 5/04/2018: for real*4 compilation, replace DEXP => EXP !---------------------------------------------------- !################################################################ ! diff --git a/src/SURFEX/gather_and_write_mpi.F90 b/src/SURFEX/gather_and_write_mpi.F90 index 0cc1a8ef4d3132df67c46baa6aa80f6a7dc26771..e8dd6caa2d00e4fa8e0e657761597de19a1652d8 100644 --- a/src/SURFEX/gather_and_write_mpi.F90 +++ b/src/SURFEX/gather_and_write_mpi.F90 @@ -8,6 +8,7 @@ MODULE MODI_GATHER_AND_WRITE_MPI !! ------------- !! Original !! J.Escobar 10/06/2013: replace DOUBLE PRECISION by REAL to handle problem for promotion of real on IBM SP +!! J.Escobar 05/04/2018: for real*4 compilation, differenced real(kind=8) & real(kind=4) routine version !---------------------------------------------------- ! INTERFACE GATHER_AND_WRITE_MPI @@ -358,7 +359,7 @@ INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK INTEGER, DIMENSION(NSIZE,SIZE(KWORK2,2),SIZE(KWORK2,3)) :: IINTER INTEGER, DIMENSION(NSIZE,SIZE(KWORK,2),SIZE(KWORK,3)) :: IWORK ! -DOUBLE PRECISION :: XTIME0 +REAL :: XTIME0 ! #ifdef SFX_MPI INTEGER, DIMENSION(MPI_STATUS_SIZE) :: ISTATUS @@ -455,27 +456,117 @@ END SUBROUTINE GATHER_AND_WRITE_MPI_N3D ! SUBROUTINE GATHER_AND_WRITE_MPI_X1D(PWORK,PWORK2,KMASK) ! -USE MODI_GATHER_AND_WRITE_MPI_K4 +USE MODD_SURFEX_MPI, ONLY : NINDEX, NPROC, NRANK, NCOMM, NPIO, NSIZE, & + XTIME_COMM_WRITE, XTIME_CALC_WRITE, & + IDX_W, WLOG_MPI ! -USE MODD_SURFEX_MPI, ONLY : NRANK, NPIO +USE MODD_SURF_PAR, ONLY : XUNDEF +! +USE MODI_UNPACK_SAME_RANK ! USE YOMHOOK ,ONLY : LHOOK, DR_HOOK USE PARKIND1 ,ONLY : JPRB ! IMPLICIT NONE ! +#ifdef SFX_MPI +INCLUDE "mpif.h" +#endif +! REAL, DIMENSION(:), INTENT(IN) :: PWORK -REAL(KIND=KIND(PWORK)), DIMENSION(:), INTENT(OUT) :: PWORK2 +REAL(KIND=8), DIMENSION(:), INTENT(OUT) :: PWORK2 +! INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK ! -REAL(KIND=JPRB) :: ZHOOK_HANDLE +REAL, DIMENSION(NSIZE) :: ZINTER +REAL, DIMENSION(NSIZE) :: ZWORK +REAL :: XTIME0 +! +#ifdef SFX_MPI +INTEGER, DIMENSION(MPI_STATUS_SIZE) :: ISTATUS +#endif +INTEGER :: ICPT +INTEGER :: I,J, IP1, IS1 +INTEGER :: INFOMPI +! +REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_OMP +! ! IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X1D',0,ZHOOK_HANDLE) ! -IF (PRESENT(KMASK)) THEN - CALL GATHER_AND_WRITE_MPI_K4(PWORK,PWORK2,KMASK) +ZWORK(:) = XUNDEF +! +#ifdef SFX_MPI +XTIME0 = MPI_WTIME() +#endif +! +IF (SIZE(PWORK)>0) THEN + IF (PRESENT(KMASK)) THEN + CALL UNPACK_SAME_RANK(KMASK,PWORK,ZWORK(:)) + ELSE + ZWORK(1:SIZE(PWORK)) = PWORK(:) + ENDIF +ENDIF +! +#ifdef SFX_MPI +XTIME_CALC_WRITE = XTIME_CALC_WRITE + (MPI_WTIME() - XTIME0) +! +XTIME0 = MPI_WTIME() +#endif +! +IF (NRANK/=NPIO) THEN + ! + IDX_W = IDX_W + 1 + ! +#ifdef SFX_MPI + XTIME0 = MPI_WTIME() + CALL MPI_SEND(ZWORK,SIZE(ZWORK)*KIND(ZWORK)/4,MPI_REAL,NPIO,IDX_W,NCOMM,INFOMPI) + XTIME_COMM_WRITE = XTIME_COMM_WRITE + (MPI_WTIME() - XTIME0) +#endif + ! ELSE - CALL GATHER_AND_WRITE_MPI_K4(PWORK,PWORK2) + ! + PWORK2(:) = 0. + ! + IDX_W = IDX_W + 1 + ! + DO I=0,NPROC-1 + ! +#ifdef SFX_MPI + XTIME0 = MPI_WTIME() +#endif + ! + IF (I/=NPIO) THEN +#ifdef SFX_MPI + CALL MPI_RECV(ZINTER,SIZE(ZINTER)*KIND(ZINTER)/4,MPI_REAL,I,IDX_W,NCOMM,ISTATUS,INFOMPI) +#endif + ELSE + ZINTER(:) = ZWORK(:) + ENDIF + ! +#ifdef SFX_MPI + XTIME_COMM_WRITE = XTIME_COMM_WRITE + (MPI_WTIME() - XTIME0) + ! + XTIME0 = MPI_WTIME() +#endif + ! + ICPT = 0 + ! + DO J=1,SIZE(NINDEX) + ! + IF ( NINDEX(J)==I ) THEN + ICPT = ICPT + 1 + PWORK2(J) = ZINTER(ICPT) + ENDIF + ! + ENDDO + ! +#ifdef SFX_MPI + XTIME_CALC_WRITE = XTIME_CALC_WRITE + (MPI_WTIME() - XTIME0) +#endif + ! + ENDDO + ! ENDIF ! IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X1D',1,ZHOOK_HANDLE) @@ -486,27 +577,122 @@ END SUBROUTINE GATHER_AND_WRITE_MPI_X1D ! SUBROUTINE GATHER_AND_WRITE_MPI_X2D(PWORK,PWORK2,KMASK) ! -USE MODI_GATHER_AND_WRITE_MPI_K4 +USE MODD_SURF_PAR, ONLY : XUNDEF ! -USE MODD_SURFEX_MPI, ONLY : NRANK, NPIO +USE MODD_SURFEX_MPI, ONLY : NINDEX, NPROC, NRANK, NCOMM, NPIO, NSIZE, & + XTIME_COMM_WRITE, & + XTIME_CALC_WRITE, IDX_W, WLOG_MPI +! +USE MODI_UNPACK_SAME_RANK ! USE YOMHOOK ,ONLY : LHOOK, DR_HOOK USE PARKIND1 ,ONLY : JPRB ! IMPLICIT NONE ! +#ifdef SFX_MPI +INCLUDE "mpif.h" +#endif +! REAL, DIMENSION(:,:), INTENT(IN) :: PWORK -REAL(KIND=KIND(PWORK)), DIMENSION(:,:), INTENT(OUT) :: PWORK2 +REAL(KIND=8), DIMENSION(:,:), INTENT(OUT) :: PWORK2 INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK ! -REAL(KIND=JPRB) :: ZHOOK_HANDLE +REAL, DIMENSION(NSIZE,SIZE(PWORK2,2)) :: ZINTER +REAL, DIMENSION(NSIZE,SIZE(PWORK,2)) :: ZWORK +REAL:: XTIME0 +! +#ifdef SFX_MPI +INTEGER, DIMENSION(MPI_STATUS_SIZE) :: ISTATUS +#endif +INTEGER :: ICPT, IX2, IS1, IS2, IP1, IP2 +INTEGER :: I,J +INTEGER :: INFOMPI +! +REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_OMP +! ! IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X2D',0,ZHOOK_HANDLE) ! -IF (PRESENT(KMASK)) THEN - CALL GATHER_AND_WRITE_MPI_K4(PWORK,PWORK2,KMASK) +ZWORK(:,:) = XUNDEF +! +#ifdef SFX_MPI +XTIME0 = MPI_WTIME() +#endif +! +IF (SIZE(PWORK,1)>0) THEN + IF (PRESENT(KMASK)) THEN + CALL UNPACK_SAME_RANK(KMASK,PWORK,ZWORK(:,:)) + ELSE + ZWORK(1:SIZE(PWORK,1),:) = PWORK(:,:) + ENDIF +ENDIF +! +#ifdef SFX_MPI +XTIME_CALC_WRITE = XTIME_CALC_WRITE + (MPI_WTIME() - XTIME0) +! +XTIME0 = MPI_WTIME() +#endif +! +IF (NRANK/=NPIO) THEN + ! + IDX_W = IDX_W + 1 + ! +#ifdef SFX_MPI + XTIME0 = MPI_WTIME() + CALL MPI_SEND(ZWORK(:,:),SIZE(ZWORK)*KIND(ZWORK)/4,MPI_REAL,NPIO,IDX_W,NCOMM,INFOMPI) + XTIME_COMM_WRITE = XTIME_COMM_WRITE + (MPI_WTIME() - XTIME0) +#endif + ! +ELSEIF (NPROC>1) THEN + ! + PWORK2(:,:) = 0. + ! + IDX_W = IDX_W + 1 + ! +!!$OMP PARALLEL DO PRIVATE(I,ZINTER,ICPT,J,ISTATUS,INFOMPI,ZHOOK_HANDLE_OMP) + DO I=0,NPROC-1 + ! +#ifdef SFX_MPI + XTIME0 = MPI_WTIME() +#endif + ! + IF (I/=NPIO) THEN +#ifdef SFX_MPI + CALL MPI_RECV(ZINTER,SIZE(ZINTER)*KIND(ZINTER)/4,MPI_REAL,I,IDX_W,NCOMM,ISTATUS,INFOMPI) +#endif + ELSE + ZINTER(:,:) = ZWORK(:,:) + ENDIF +! ! +#ifdef SFX_MPI + XTIME_COMM_WRITE = XTIME_COMM_WRITE + (MPI_WTIME() - XTIME0) + ! + XTIME0 = MPI_WTIME() +#endif + ! + ICPT = 0 + ! + DO J=1,SIZE(NINDEX) + ! + IF ( NINDEX(J)==I ) THEN + ICPT = ICPT + 1 + PWORK2(J,:) = ZINTER(ICPT,:) + ENDIF + ! + ENDDO + ! +#ifdef SFX_MPI + XTIME_CALC_WRITE = XTIME_CALC_WRITE + (MPI_WTIME() - XTIME0) +#endif + ! + ENDDO +!!$OMP END PARALLEL DO + ! ELSE - CALL GATHER_AND_WRITE_MPI_K4(PWORK,PWORK2) + ! + PWORK2(:,:) = ZWORK(:,:) + ! ENDIF ! IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X2D',1,ZHOOK_HANDLE) @@ -517,30 +703,142 @@ END SUBROUTINE GATHER_AND_WRITE_MPI_X2D ! SUBROUTINE GATHER_AND_WRITE_MPI_X3D(PWORK,PWORK2,KMASK) ! -USE MODI_GATHER_AND_WRITE_MPI_K4 +USE MODD_SURF_PAR, ONLY : XUNDEF ! -USE MODD_SURFEX_MPI, ONLY : NRANK, NPIO +USE MODD_SURFEX_MPI, ONLY : NINDEX, NPROC, NRANK, NCOMM, NPIO, NSIZE, & + XTIME_COMM_WRITE, & + XTIME_CALC_WRITE, IDX_W, WLOG_MPI +! +USE MODI_UNPACK_SAME_RANK ! USE YOMHOOK ,ONLY : LHOOK, DR_HOOK USE PARKIND1 ,ONLY : JPRB ! IMPLICIT NONE ! +#ifdef SFX_MPI +INCLUDE "mpif.h" +#endif +! REAL, DIMENSION(:,:,:), INTENT(IN) :: PWORK -REAL(KIND=KIND(PWORK)), DIMENSION(:,:,:), INTENT(OUT) :: PWORK2 +REAL(KIND=8), DIMENSION(:,:,:), INTENT(OUT) :: PWORK2 INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK ! -REAL(KIND=JPRB) :: ZHOOK_HANDLE +REAL, DIMENSION(NSIZE,SIZE(PWORK2,2),SIZE(PWORK2,3)) :: ZINTER +REAL, DIMENSION(NSIZE,SIZE(PWORK,2),SIZE(PWORK,3)) :: ZWORK +REAL :: XTIME0 ! -IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D',0,ZHOOK_HANDLE) +#ifdef SFX_MPI +INTEGER, DIMENSION(MPI_STATUS_SIZE) :: ISTATUS +#endif +INTEGER :: ICPT, IX2, IS1, IS2, IP1, IP2 +INTEGER :: I,J +INTEGER :: INFOMPI ! -IF (PRESENT(KMASK)) THEN - CALL GATHER_AND_WRITE_MPI_K4(PWORK,PWORK2,KMASK) +REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_OMP +! +! +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_1',0,ZHOOK_HANDLE) +! +ZWORK(:,:,:) = XUNDEF +! +#ifdef SFX_MPI +XTIME0 = MPI_WTIME() +#endif +! +IF (SIZE(PWORK,1)>0) THEN + IF (PRESENT(KMASK)) THEN + CALL UNPACK_SAME_RANK(KMASK,PWORK(:,:,:),ZWORK(:,:,:)) + ELSE + ZWORK(1:SIZE(PWORK,1),:,:) = PWORK(:,:,:) + ENDIF +ENDIF +! +#ifdef SFX_MPI +XTIME_CALC_WRITE = XTIME_CALC_WRITE + (MPI_WTIME() - XTIME0) +! +XTIME0 = MPI_WTIME() +#endif +! +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_1',1,ZHOOK_HANDLE) +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_2',0,ZHOOK_HANDLE) + +IF (NRANK/=NPIO) THEN + ! + ! + IDX_W = IDX_W + 1 + ! +#ifdef SFX_MPI + XTIME0 = MPI_WTIME() + CALL MPI_SEND(ZWORK(:,:,:),SIZE(ZWORK)*KIND(ZWORK)/4,MPI_REAL,NPIO,IDX_W,NCOMM,INFOMPI) + XTIME_COMM_WRITE = XTIME_COMM_WRITE + (MPI_WTIME() - XTIME0) +#endif + ! +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_2',1,ZHOOK_HANDLE) +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_5',0,ZHOOK_HANDLE) + ! +ELSEIF (NPROC>1) THEN + ! + PWORK2(:,:,:) = 0. + ! + IDX_W = IDX_W + 1 + ! +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_2',1,ZHOOK_HANDLE) + +!!$OMP PARALLEL DO PRIVATE(I,ZINTER,ICPT,J,INFOMPI,ISTATUS,ZHOOK_HANDLE_OMP) + DO I=0,NPROC-1 +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_3',0,ZHOOK_HANDLE_OMP) + ! +#ifdef SFX_MPI + XTIME0 = MPI_WTIME() +#endif + ! + IF (I/=NPIO) THEN +#ifdef SFX_MPI + CALL MPI_RECV(ZINTER,SIZE(ZINTER)*KIND(ZINTER)/4,MPI_REAL,I,IDX_W,NCOMM,ISTATUS,INFOMPI) +#endif + ELSE + ZINTER(:,:,:) = ZWORK(:,:,:) + ENDIF +! ! +#ifdef SFX_MPI + XTIME_COMM_WRITE = XTIME_COMM_WRITE + (MPI_WTIME() - XTIME0) + ! + XTIME0 = MPI_WTIME() +#endif + ! +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_3',1,ZHOOK_HANDLE_OMP) +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_4',0,ZHOOK_HANDLE_OMP) + + ICPT = 0 + ! + DO J=1,SIZE(NINDEX) + ! + IF ( NINDEX(J)==I ) THEN + ICPT = ICPT + 1 + PWORK2(J,:,:) = ZINTER(ICPT,:,:) + ENDIF + ! + ENDDO + ! +#ifdef SFX_MPI + XTIME_CALC_WRITE = XTIME_CALC_WRITE + (MPI_WTIME() - XTIME0) +#endif + ! +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_4',1,ZHOOK_HANDLE_OMP) + ENDDO +!!$OMP END PARALLEL DO + ! +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_5',0,ZHOOK_HANDLE) + ! ELSE - CALL GATHER_AND_WRITE_MPI_K4(PWORK,PWORK2) + PWORK2(:,:,:) = ZWORK(:,:,:) +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_2',1,ZHOOK_HANDLE) +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_5',0,ZHOOK_HANDLE) + ENDIF ! -IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D',1,ZHOOK_HANDLE) +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3D_5',1,ZHOOK_HANDLE) ! END SUBROUTINE GATHER_AND_WRITE_MPI_X3D ! @@ -558,10 +856,10 @@ USE PARKIND1 ,ONLY : JPRB IMPLICIT NONE ! REAL, DIMENSION(:), INTENT(IN) :: PWORK -REAL(KIND=KIND(PWORK)/2), DIMENSION(:), INTENT(OUT) :: PWORK2 +REAL(KIND=4), DIMENSION(:), INTENT(OUT) :: PWORK2 INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK ! -REAL, DIMENSION(:), ALLOCATABLE :: ZINTER +REAL(KIND=4), DIMENSION(:), ALLOCATABLE :: ZINTER REAL(KIND=JPRB) :: ZHOOK_HANDLE ! IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X1DK4',0,ZHOOK_HANDLE) @@ -596,10 +894,10 @@ USE PARKIND1 ,ONLY : JPRB IMPLICIT NONE ! REAL, DIMENSION(:,:), INTENT(IN) :: PWORK -REAL(KIND=KIND(PWORK)/2), DIMENSION(:,:), INTENT(OUT) :: PWORK2 +REAL(KIND=4), DIMENSION(:,:), INTENT(OUT) :: PWORK2 INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK ! -REAL, DIMENSION(:,:), ALLOCATABLE :: ZINTER +REAL(KIND=4), DIMENSION(:,:), ALLOCATABLE :: ZINTER REAL(KIND=JPRB) :: ZHOOK_HANDLE ! IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X2DK4',0,ZHOOK_HANDLE) @@ -619,4 +917,42 @@ DEALLOCATE(ZINTER) IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X2DK4',1,ZHOOK_HANDLE) ! END SUBROUTINE GATHER_AND_WRITE_MPI_X2DK4 +! +!************************************************************************** +! +SUBROUTINE GATHER_AND_WRITE_MPI_X3DK4(PWORK,PWORK2,KMASK) +! +USE MODI_GATHER_AND_WRITE_MPI_K4 +! +USE MODD_SURFEX_MPI, ONLY : NRANK, NPIO +! +USE YOMHOOK ,ONLY : LHOOK, DR_HOOK +USE PARKIND1 ,ONLY : JPRB +! +IMPLICIT NONE +! +REAL, DIMENSION(:,:,:), INTENT(IN) :: PWORK +REAL(KIND=4), DIMENSION(:,:,:), INTENT(OUT) :: PWORK2 +INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK +! +REAL(KIND=4), DIMENSION(:,:,:), ALLOCATABLE :: ZINTER +REAL(KIND=JPRB) :: ZHOOK_HANDLE +! +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3DK4',0,ZHOOK_HANDLE) +! +ALLOCATE(ZINTER(SIZE(PWORK2,1),SIZE(PWORK2,2),SIZE(PWORK2,3))) +IF (PRESENT(KMASK)) THEN + CALL GATHER_AND_WRITE_MPI_K4(PWORK,ZINTER,KMASK) +ELSE + CALL GATHER_AND_WRITE_MPI_K4(PWORK,ZINTER) +ENDIF +! +IF (NRANK==NPIO) THEN + PWORK2(:,:,:) = ZINTER(:,:,:) +ENDIF +DEALLOCATE(ZINTER) +! +IF (LHOOK) CALL DR_HOOK('GATHER_AND_WRITE_MPI_X3DK4',1,ZHOOK_HANDLE) +! +END SUBROUTINE GATHER_AND_WRITE_MPI_X3DK4 diff --git a/src/SURFEX/gather_and_write_mpi_k4.F90 b/src/SURFEX/gather_and_write_mpi_k4.F90 index ddeace8a76b520008e22492a85becb10cf372cff..1bccd0f73b075fb8920b4b29f929eee39bf1d7e0 100644 --- a/src/SURFEX/gather_and_write_mpi_k4.F90 +++ b/src/SURFEX/gather_and_write_mpi_k4.F90 @@ -8,6 +8,7 @@ MODULE MODI_GATHER_AND_WRITE_MPI_K4 !! ------------- !! Original !! J.Escobar 10/06/2013: replace DOUBLE PRECISION by REAL to handle problem for promotion of real on IBM SP +!! J.Escobar 05/04/2018: for real*4 compilation, differenced real(kind=8) & real(kind=4) routine version !---------------------------------------------------- ! INTERFACE GATHER_AND_WRITE_MPI_K4 @@ -15,7 +16,7 @@ INTERFACE GATHER_AND_WRITE_MPI_K4 SUBROUTINE GATHER_AND_WRITE_MPI_X1D0(PWORK,PWORK2,KMASK) ! REAL, DIMENSION(:), INTENT(IN) :: PWORK -REAL, DIMENSION(:), INTENT(OUT) :: PWORK2 +REAL(KIND=4), DIMENSION(:), INTENT(OUT) :: PWORK2 ! INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK ! @@ -24,7 +25,7 @@ END SUBROUTINE GATHER_AND_WRITE_MPI_X1D0 SUBROUTINE GATHER_AND_WRITE_MPI_X2D0(PWORK,PWORK2,KMASK) ! REAL, DIMENSION(:,:), INTENT(IN) :: PWORK -REAL, DIMENSION(:,:), INTENT(OUT) :: PWORK2 +REAL(KIND=4), DIMENSION(:,:), INTENT(OUT) :: PWORK2 ! INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK ! @@ -33,7 +34,7 @@ END SUBROUTINE GATHER_AND_WRITE_MPI_X2D0 SUBROUTINE GATHER_AND_WRITE_MPI_X3D0(PWORK,PWORK2,KMASK) ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PWORK -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PWORK2 +REAL(KIND=4), DIMENSION(:,:,:), INTENT(OUT) :: PWORK2 ! INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK ! @@ -65,7 +66,7 @@ INCLUDE "mpif.h" #endif ! REAL, DIMENSION(:), INTENT(IN) :: PWORK -REAL, DIMENSION(:), INTENT(OUT) :: PWORK2 +REAL(KIND=4), DIMENSION(:), INTENT(OUT) :: PWORK2 ! INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK ! @@ -187,7 +188,7 @@ INCLUDE "mpif.h" #endif ! REAL, DIMENSION(:,:), INTENT(IN) :: PWORK -REAL, DIMENSION(:,:), INTENT(OUT) :: PWORK2 +REAL(KIND=4), DIMENSION(:,:), INTENT(OUT) :: PWORK2 ! INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK ! @@ -315,13 +316,13 @@ INCLUDE "mpif.h" #endif ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PWORK -REAL, DIMENSION(:,:,:), INTENT(OUT) :: PWORK2 +REAL(KIND=4), DIMENSION(:,:,:), INTENT(OUT) :: PWORK2 ! INTEGER, DIMENSION(:), INTENT(IN), OPTIONAL :: KMASK ! REAL, DIMENSION(NSIZE,SIZE(PWORK2,2),SIZE(PWORK2,3)) :: ZINTER REAL, DIMENSION(NSIZE,SIZE(PWORK,2),SIZE(PWORK,3)) :: ZWORK -DOUBLE PRECISION :: XTIME0 +REAL :: XTIME0 ! #ifdef SFX_MPI INTEGER, DIMENSION(MPI_STATUS_SIZE) :: ISTATUS diff --git a/src/SURFEX/mode_geo_gauss.F90 b/src/SURFEX/mode_geo_gauss.F90 index f148bcd5e4983d10f859aec6264476c82ed49df2..58957ed3224d9ec45ab3f2ce592ae38ef07cba27 100644 --- a/src/SURFEX/mode_geo_gauss.F90 +++ b/src/SURFEX/mode_geo_gauss.F90 @@ -11,6 +11,8 @@ MODULE MODE_GEO_GAUSS !! MODIFICATION !! ------------ !! Original 10/2005 + !! J.Escobar 30/03/2017 : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4 + !! J.Escobar 05/04/2018 : for real*4 compilation , change some REAL kind !! !--------------------------------------------------------------------------- USE EGGANGLES, ONLY : LOLA @@ -106,7 +108,7 @@ CONTAINS TYPE (LOLA), INTENT(IN) :: PT_TR TYPE (LOLA), INTENT(IN) :: PT_POLE - REAL(KIND=JPRB) :: ZSIN, ZCOS + REAL :: ZSIN, ZCOS REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:ROTATE_G_S',0,ZHOOK_HANDLE) @@ -129,7 +131,7 @@ CONTAINS TYPE (LOLA), INTENT(IN) :: PT_POLE TYPE (LOLA), DIMENSION(SIZE(PT_TR)) :: PT_REEL - REAL(KIND=JPRB), DIMENSION(SIZE(PT_TR)) :: ZSIN, ZCOS + REAL, DIMENSION(SIZE(PT_TR)) :: ZSIN, ZCOS REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:ROTATE_G_V',0,ZHOOK_HANDLE) @@ -155,7 +157,7 @@ CONTAINS TYPE (LOLA), INTENT(IN) :: PT_REEL TYPE (LOLA), INTENT(IN) :: PT_POLE - REAL(KIND=JPRB) :: ZSIN, ZCOS + REAL :: ZSIN, ZCOS REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:ANTI_ROTATE_G_S',0,ZHOOK_HANDLE) @@ -177,7 +179,7 @@ CONTAINS TYPE (LOLA), INTENT(IN) :: PT_POLE TYPE (LOLA), DIMENSION(SIZE(PT_REEL)) :: PT_TR - REAL(KIND=JPRB), DIMENSION(SIZE(PT_REEL)) :: ZSIN, ZCOS + REAL, DIMENSION(SIZE(PT_REEL)) :: ZSIN, ZCOS REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:ANTI_ROTATE_G_V',0,ZHOOK_HANDLE) @@ -202,7 +204,7 @@ CONTAINS TYPE (LOLA), INTENT(IN) :: PT_COORD REAL, INTENT(IN) :: PCODIL - REAL(KIND=JPRB) :: ZPC2, ZSIN, ZCOS + REAL :: ZPC2, ZSIN, ZCOS REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:ETIR_S',0,ZHOOK_HANDLE) @@ -222,7 +224,7 @@ CONTAINS REAL, INTENT(IN) :: PCODIL TYPE (LOLA), DIMENSION(SIZE(PT_COORD)) :: PT_ET - REAL(KIND=JPRB), DIMENSION(SIZE(PT_COORD)) :: ZPC2, ZSIN, ZCOS + REAL, DIMENSION(SIZE(PT_COORD)) :: ZPC2, ZSIN, ZCOS REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:ETIR_V',0,ZHOOK_HANDLE) @@ -241,7 +243,7 @@ CONTAINS TYPE (LOLA), INTENT(IN) :: PT_COORD REAL, INTENT(IN) :: PCODIL - REAL(KIND=JPRB) :: ZPC2, ZSIN, ZCOS + REAL :: ZPC2, ZSIN, ZCOS REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:RETRE_S',0,ZHOOK_HANDLE) @@ -261,7 +263,7 @@ CONTAINS REAL, INTENT(IN) :: PCODIL TYPE (LOLA), DIMENSION(SIZE(PT_COORD)) :: PT_RE - REAL(KIND=JPRB), DIMENSION(SIZE(PT_COORD)) :: ZPC2, ZSIN, ZCOS + REAL, DIMENSION(SIZE(PT_COORD)) :: ZPC2, ZSIN, ZCOS REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:RETRE_V',0,ZHOOK_HANDLE) @@ -283,7 +285,7 @@ CONTAINS TYPE (LOLA), INTENT(IN) :: POLE, PT_COORD REAL, INTENT(IN) :: PCODIL - REAL(KIND=JPRB) :: ZPC2 + REAL :: ZPC2 REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:MAP_FAC_S',0,ZHOOK_HANDLE) ZPC2 = PCODIL*PCODIL @@ -299,7 +301,7 @@ CONTAINS REAL, INTENT(IN) :: PCODIL REAL, DIMENSION(SIZE(PT_COORD)) :: PMF - REAL(KIND=JPRB), DIMENSION(SIZE(PT_COORD)) :: ZPC2 + REAL, DIMENSION(SIZE(PT_COORD)) :: ZPC2 REAL(KIND=JPRB) :: ZHOOK_HANDLE IF (LHOOK) CALL DR_HOOK('MODE_GEO_GAUSS:MAP_FAC_V',0,ZHOOK_HANDLE) diff --git a/src/SURFEX/pgd_cover.F90 b/src/SURFEX/pgd_cover.F90 index ff55901770aecceb24b199114bf217a090e8468d..1df60681c5dc1967543036109e88ab5f83fc7ed4 100644 --- a/src/SURFEX/pgd_cover.F90 +++ b/src/SURFEX/pgd_cover.F90 @@ -38,6 +38,7 @@ !! B. Decharme 07/2009 compatibility between Surfex and Orca (Nemo) grid (Earth Model) !! B. Decharme 07/2012 if sea or water imposed to 1 in a grid cell: no extrapolation !! B. Decharme 02/2014 Add LRM_RIVER and remove lake over antarctica +!! J. Escobar 05/04/2018 : for real*4 compilation , change some REAL kind !! !---------------------------------------------------------------------------- ! @@ -741,7 +742,7 @@ INTEGER, INTENT(INOUT) :: KCOVER INTEGER, INTENT(OUT) :: KC_SURF ! LOGICAL :: GPRESENT -REAL :: ZHOOK_HANDLE +REAL(KIND=JPRB) :: ZHOOK_HANDLE ! IF (LHOOK) CALL DR_HOOK('PGD_COVER:FIT_COVERS',0,ZHOOK_HANDLE) ! @@ -802,7 +803,7 @@ INTEGER, DIMENSION(:), POINTER :: KMASK_COVER INTEGER, INTENT(IN) :: KCOVER ! INTEGER :: ICPT -REAL :: ZHOOK_HANDLE +REAL(KIND=JPRB) :: ZHOOK_HANDLE ! IF (LHOOK) CALL DR_HOOK('PGD_COVER:MAKE_MASK_COVER',0,ZHOOK_HANDLE) ! @@ -836,7 +837,7 @@ REAL, DIMENSION(U%NDIM_FULL,SIZE(PCOVER,2)) :: ZCOVER_ALL INTEGER, DIMENSION(U%NDIM_FULL) :: IMAXCOVER_ALL INTEGER, DIMENSION(U%NSIZE_FULL) :: IMAXCOVER INTEGER :: JK, JCOV, ISIZE_OMP -REAL :: ZHOOK_HANDLE_OMP +REAL(KIND=JPRB) :: ZHOOK_HANDLE_OMP ! ISIZE_OMP = MAX(1,SIZE(PCOVER,1)/NBLOCKTOT) ! diff --git a/src/SURFEX/read_and_send_mpi.F90 b/src/SURFEX/read_and_send_mpi.F90 index 8d3275736d26d4e3e10654fa8f7e3ce47b63decb..39a726edb82dd360c651572f92cfb55c6d9a1599 100644 --- a/src/SURFEX/read_and_send_mpi.F90 +++ b/src/SURFEX/read_and_send_mpi.F90 @@ -2,6 +2,11 @@ !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. +!! MODIFICATION +!! ------------ +!! J. Escobar 05/04/2018 : for real*4 compilation , change some REAL kind +!! +!---------------------------------------------------------------------------- MODULE MODI_READ_AND_SEND_MPI ! INTERFACE READ_AND_SEND_MPI @@ -106,7 +111,7 @@ INTEGER, DIMENSION(MPI_STATUS_SIZE,NPROC-1) :: ISTATUS2 INTEGER :: ICPT, IPIO, IDX, IREQ INTEGER :: I,J INTEGER :: INFOMPI -DOUBLE PRECISION :: XTIME0 +REAL :: XTIME0 ! REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_OMP ! @@ -249,7 +254,7 @@ INTEGER :: IS2, IP2 INTEGER :: ICPT INTEGER :: I,J, K INTEGER :: INFOMPI -DOUBLE PRECISION :: XTIME0 +REAL :: XTIME0 ! REAL(KIND=JPRB) :: ZHOOK_HANDLE ! @@ -352,7 +357,7 @@ INTEGER :: IP2, IS2, IP3, IS3 INTEGER :: ICPT, IPIO, IDX INTEGER :: I,J INTEGER :: INFOMPI, IREQ -DOUBLE PRECISION :: XTIME0 +REAL :: XTIME0 ! REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_OMP ! @@ -490,7 +495,7 @@ INTEGER, DIMENSION(MPI_STATUS_SIZE) :: ISTATUS INTEGER :: ICPT, IPIO, IDX INTEGER :: I,J, IREQ INTEGER :: INFOMPI -DOUBLE PRECISION :: XTIME0 +REAL :: XTIME0 ! REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_OMP ! @@ -636,7 +641,7 @@ INTEGER :: IS2, IP2 INTEGER :: ICPT, IPIO, IDX INTEGER :: I,J, K, IREQ INTEGER :: INFOMPI -DOUBLE PRECISION :: XTIME0 +REAL :: XTIME0 ! REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_OMP ! @@ -782,7 +787,7 @@ INTEGER :: IP2, IS2, IP3, IS3 INTEGER :: ICPT, IPIO, IDX INTEGER :: I,J INTEGER :: INFOMPI, IREQ -DOUBLE PRECISION :: XTIME0 +REAL :: XTIME0 ! REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_OMP ! diff --git a/src/configure b/src/configure index 2df6915760973051a6b01b43f618e560808170e1..888458cd46658e74da5bb1c5a347eef2b36fdc3e 100755 --- a/src/configure +++ b/src/configure @@ -16,7 +16,7 @@ export VERSION_LIBAEC=${VERSION_LIBAEC:-"0.3.2"} export VERSION_HDF=${VERSION_HDF:-"1.8.20"} export VERSION_CDFC=${VERSION_CDFC:-"4.5.0"} export VERSION_CDFF=${VERSION_CDFF:-"4.4.4"} -export VERSION_GRIBAPI=${VERSION_GRIBAPI:-"1.13.1"} +export VERSION_GRIBAPI=${VERSION_GRIBAPI:-"1.26.0-Source"} export MNH_INT=${MNH_INT:-"4"} export LFI_INT=${LFI_INT:-8} export MNH_REAL=${MNH_REAL:-"8"} @@ -24,7 +24,7 @@ export MNH_IOCDF4=${MNH_IOCDF4:-1} export VERSION_OASIS=${VERSION_OASIS:-"mct_v3"} export VERSION_TOY=${VERSION_TOY:-"v1-0"} -export VERSION_NCL=${VERSION_NCL:-"ncl-6.3.0"} +export VERSION_NCL=${VERSION_NCL:-"ncl-6.4.0"} export LEN_HREC=${LEN_HREC:-16}