diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 index 060c71ca002acc71cb3c6665ec1cbed9ac2df3f9..e1270372bed07eedacebe6778df805dc57a1c68d 100644 --- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 +++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 @@ -3,7 +3,8 @@ MODULE MODE_NETCDF !! !! Original 14/04/2015 D. Gazen !! D.Gazen & J.Escobar 24/03/2107 : Correction for compilation of netcdf4IO in REAL*4 <=> MNH_REAL=R4 -!! J.Escobar 30/06/2017 : Add activation of ZLIB compression in NCWRITX3 +!! J.Escobar 30/06/2017 : Add activation of ZLIB compression in NCWRITX3 +!! J.Escobar 14/12/2017 : Correction for MNH_INT=8 !! USE MODD_NETCDF @@ -739,7 +740,7 @@ YVARNAME = str_replace(YVARNAME, '.', '--') STATUS = NF_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF_NOERR) THEN ! Define the scalar variable -#ifndef MNH_INT8 +#if ( MNH_INT == 4 ) STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_INT, IZERO, IZERO, IVARID) #else STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_INT64, IZERO, IZERO, IVARID) @@ -751,7 +752,7 @@ ELSE END IF ! Write the data -#ifndef MNH_INT8 +#if ( MNH_INT == 4 ) STATUS = NF_PUT_VAR_INT(INCID, IVARID, INT(KFIELD,KIND=IDCDF_KIND)) IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN0[NF_PUT_VAR_INT]',IRESP) #else @@ -807,7 +808,7 @@ IF (STATUS /= NF_NOERR) THEN ! Get the netcdf dimensions CALL FILLVDIMS(PZCDF, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), HDIR, IVDIMS) ! Define the variable -#ifndef MNH_INT8 +#if ( MNH_INT == 4 ) STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_INT, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) #else STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_INT64, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) @@ -819,7 +820,7 @@ ELSE END IF ! Write the data -#ifndef MNH_INT8 +#if ( MNH_INT == 4 ) STATUS = NF_PUT_VAR_INT(INCID, IVARID, INT(KFIELD,KIND=IDCDF_KIND)) IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN1[NF_PUT_VAR_INT]',IRESP) #else @@ -861,7 +862,7 @@ IF (STATUS /= NF_NOERR) THEN CALL FILLVDIMS(PZCDF, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), HDIR, IVDIMS) ! Define the variable -#ifndef MNH_INT8 +#if ( MNH_INT == 4 ) STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_INT, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) #else STATUS = NF_DEF_VAR(INCID, YVARNAME, NF_INT64, INT(SIZE(IVDIMS),KIND=IDCDF_KIND), IVDIMS, IVARID) @@ -873,7 +874,7 @@ ELSE END IF ! Write the data -#ifndef MNH_INT8 +#if ( MNH_INT == 4 ) STATUS = NF_PUT_VAR_INT(INCID, IVARID, INT(KFIELD,KIND=IDCDF_KIND)) IF (status /= NF_NOERR) CALL HANDLE_ERR(status,__LINE__,'NCWRITN2[NF_PUT_VAR_INT]',IRESP) #else @@ -1591,13 +1592,13 @@ IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN0[NF_INQ_VARNDIM STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN0[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) -#ifndef MNH_INT8 +#if ( MNH_INT == 4 ) IF (IDIMS == 0 .AND. ITYPE == NF_INT) THEN #else IF (IDIMS == 0 .AND. ITYPE == NF_INT64) THEN #endif ! Read variable -#ifndef MNH_INT8 +#if ( MNH_INT == 4 ) STATUS = NF_GET_VAR_INT(KNCID, IVARID, KFIELD) #else STATUS = NF_GET_VAR_INT64(KNCID, IVARID, KFIELD) @@ -1655,7 +1656,7 @@ IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN1[NF_INQ_VARNDIM STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN1[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) -#ifndef MNH_INT8 +#if ( MNH_INT == 4 ) IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF_INT) THEN #else IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF_INT64) THEN @@ -1672,7 +1673,7 @@ IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF_INT64) THEN IF (IVARSIZE == SIZE(KFIELD)) THEN ! Read variable -#ifndef MNH_INT8 +#if ( MNH_INT == 4 ) STATUS = NF_GET_VAR_INT(KNCID, IVARID, KFIELD) #else STATUS = NF_GET_VAR_INT64(KNCID, IVARID, KFIELD) @@ -1734,7 +1735,7 @@ IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN2[NF_INQ_VARNDIM STATUS = NF_INQ_VARTYPE(KNCID, IVARID, ITYPE) IF (STATUS /= NF_NOERR) CALL HANDLE_ERR(STATUS,__LINE__,'NCREADN2[NF_INQ_VARTYPE] '//TRIM(YVARNAME)) -#ifndef MNH_INT8 +#if ( MNH_INT == 4 ) IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF_INT) THEN #else IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF_INT64) THEN @@ -1751,7 +1752,7 @@ IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. ITYPE == NF_INT64) THEN IF (IVARSIZE == SIZE(KFIELD)) THEN ! Read variable -#ifndef MNH_INT8 +#if ( MNH_INT == 4 ) STATUS = NF_GET_VAR_INT(KNCID, IVARID, KFIELD) #else STATUS = NF_GET_VAR_INT64(KNCID, IVARID, KFIELD) diff --git a/src/Makefile.MESONH.mk b/src/Makefile.MESONH.mk index 1c74c732f32cd01e7fc5164de886ca7e397db34e..e2a435b357c3349a979b70c448959a5b1f0c9606 100644 --- a/src/Makefile.MESONH.mk +++ b/src/Makefile.MESONH.mk @@ -49,9 +49,11 @@ DIR_MASTER += $(DIR_MNH) CPPFLAGS += $(CPPFLAGS_MNH) INC += $(INC_MNH) -ifeq "$(MNH_INT)" "8" -CPPFLAGS += -DMNH_INT=8 -endif +# +# MNH integer 4/8 +# +CPPFLAGS += -DMNH_INT=$(MNH_INT) +# # # Len of HREC characters diff --git a/src/Rules.LXgfortran.mk b/src/Rules.LXgfortran.mk index dec164ce1795effcc1d1151aa6f6e42b61b20d4c..b11b8f9fc16b9a0017a56af3516e2f3f00f8eb61 100644 --- a/src/Rules.LXgfortran.mk +++ b/src/Rules.LXgfortran.mk @@ -99,9 +99,10 @@ HDF_CONF= CFLAGS=-std=c99 ## LIBTOOLS flags # #if MNH_TOOLS exists => compile the tools if gfortran >= 5.X -#ifeq ($(shell test $$( gfortran -dumpversion | cut -b1 ) -ge 5 ; echo $$?),0) +ifeq "$(MNH_INT)" "4" ifeq ($(shell test $(GFV) -ge 500 ; echo $$?),0) - MNH_TOOLS = yes +MNH_TOOLS=yes +endif endif # # diff --git a/src/Rules.LXifort.mk b/src/Rules.LXifort.mk index 92f8e8b526af6363777f8fe57d1e7683d0daa87b..92c9a496070fd5998c0e357b4599f7f09634e226 100644 --- a/src/Rules.LXifort.mk +++ b/src/Rules.LXifort.mk @@ -13,7 +13,7 @@ OPT_BASE = -g -w -assume nosource_include -assume byterecl -fpe0 -ftz -fpic - OPT_PERF0 = -O0 OPT_PERF2 = -O2 OPT_PERF3 = -O3 -xHost -OPT_CHECK = -CB -ftrapuv +OPT_CHECK = -CB -ftrapuv -debug-parameters all OPT_I8 = -i8 OPT_R8 = -r8 # @@ -130,7 +130,9 @@ CNAME_GRIBEX=ifort # LIBTOOLS flags # #if MNH_TOOLS exists => compile the tools -MNH_TOOLS = yes +ifeq "$(MNH_INT)" "4" +MNH_TOOLS=yes +endif # ########################################################## # #