From 1663d24f477f952f021f3d30f3f64c86653b3316 Mon Sep 17 00:00:00 2001 From: Juan Escobar <escj@aero.obs-mip.fr> Date: Thu, 14 Dec 2017 15:51:49 +0100 Subject: [PATCH] Juan 14/12/2017: Correction for compilation with MNH_INT=8 <-> MNH in integer*8 --- src/LIB/SURCOUCHE/src/mode_netcdf.f90 | 27 ++++++++++++++------------- src/Makefile.MESONH.mk | 8 +++++--- src/Rules.LXgfortran.mk | 5 +++-- src/Rules.LXifort.mk | 6 ++++-- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 index 060c71ca0..e1270372b 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 1c74c732f..e2a435b35 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 dec164ce1..b11b8f9fc 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 92f8e8b52..92c9a4960 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 # ########################################################## # # -- GitLab