From da830ba2f7ea548b7b3acf953c80d06915881a45 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Wed, 6 Jan 2021 16:13:37 +0100
Subject: [PATCH] Philippe 06/01/2021: small changes in the use of the
 MNH_IOCDF4 key

---
 src/LIB/SURCOUCHE/src/mode_io.f90          |  4 +--
 src/LIB/SURCOUCHE/src/mode_io_file.f90     | 34 ++++++++++++----------
 src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 |  4 +--
 src/Makefile.MESONH.mk                     |  4 ++-
 4 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90
index 09f3f32ee..0dd4e0ae6 100644
--- a/src/LIB/SURCOUCHE/src/mode_io.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -46,7 +46,7 @@ CONTAINS
     IF (GCONFIO) THEN
       CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Config_set','already called (ignoring this call)')
     ELSE
-#if defined(MNH_IOCDF4)
+#ifdef MNH_IOCDF4
       LIOCDF4  = OIOCDF4
       LLFIOUT  = OLFIOUT
       LLFIREAD = OLFIREAD
diff --git a/src/LIB/SURCOUCHE/src/mode_io_file.f90 b/src/LIB/SURCOUCHE/src/mode_io_file.f90
index d41eec187..49dc8ef63 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_file.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_file.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -183,15 +183,17 @@ SELECT CASE(TPFILE%CTYPE)
 
         IF (IRESP/=0) THEN !File not yet in filelist => add it (nothing to do if already in list)
           IF (ALLOCATED(TPFILE%CDIRNAME)) THEN
-            CALL IO_File_add2list(TZFILE_SPLIT,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE,        &
-                                  HDIRNAME=TPFILE%CDIRNAME,                                                     &
-                                  KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, &
-                                  HFORMAT=TPFILE%CFORMAT,osplit_ioz=.false.)
+            call IO_File_add2list( tzfile_split, trim(tpfile%cname)//trim(yfile), tpfile%ctype, tpfile%cmode,            &
+                                   hdirname = tpfile%cdirname,                                                           &
+                                   klfinprar = tpfile%nlfinprar, klfitype = tpfile%nlfitype, klfiverb = tpfile%nlfiverb, &
+                                   hformat = tpfile%cformat,                                                             &
+                                   osplit_ioz=.false. )
           ELSE
-            CALL IO_File_add2list(TZFILE_SPLIT,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE,        &
-                                  KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, &
-                                  HFORMAT=TPFILE%CFORMAT,osplit_ioz=.false.)
-          END IF
+            call IO_File_add2list( tzfile_split, trim(tpfile%cname)//trim(yfile), tpfile%ctype, tpfile%cmode,            &
+                                   klfinprar = tpfile%nlfinprar, klfitype = tpfile%nlfitype, klfiverb = tpfile%nlfiverb, &
+                                   hformat = tpfile%cformat,                                                             &
+                                   osplit_ioz=.false. )
+           END IF
 
           TZFILE_SPLIT%TMAINFILE => TPFILE
         END IF
@@ -495,7 +497,7 @@ use modd_conf,             only: cprogram
 use modd_io,               only: nnullunit
 
 use mode_io_file_lfi,      only: IO_File_close_lfi
-#if defined(MNH_IOCDF4)
+#ifdef MNH_IOCDF4
 use mode_io_file_nc4,      only: IO_File_close_nc4
 use mode_io_write_nc4,     only: IO_Coordvar_write_nc4
 #endif
@@ -559,7 +561,7 @@ SELECT CASE(TPFILE%CTYPE)
       CALL IO_File_close(TZFILE_DES,KRESP=IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG)
     ENDIF
     !
-#if defined(MNH_IOCDF4)
+#ifdef MNH_IOCDF4
     !Write coordinates variables in NetCDF file
     IF (TPFILE%CMODE == 'WRITE' .AND. (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4')) THEN
       CALL IO_Coordvar_write_nc4(TPFILE,HPROGRAM_ORIG=HPROGRAM_ORIG)
@@ -568,7 +570,7 @@ SELECT CASE(TPFILE%CTYPE)
 
     if (tpfile%lmaster) then
       if (tpfile%cformat == 'LFI'     .or. tpfile%cformat == 'LFICDF4') call IO_File_close_lfi(tpfile,iresp)
-#if defined(MNH_IOCDF4)
+#ifdef MNH_IOCDF4
       if (tpfile%cformat == 'NETCDF4' .or. tpfile%cformat == 'LFICDF4') call IO_File_close_nc4(tpfile,iresp)
 #endif
     end if
@@ -585,7 +587,7 @@ SELECT CASE(TPFILE%CTYPE)
       TZFILE_IOZ%LOPENED       = .FALSE.
       TZFILE_IOZ%NOPEN_CURRENT = 0
       TZFILE_IOZ%NCLOSE        = TZFILE_IOZ%NCLOSE + 1
-#if defined(MNH_IOCDF4)
+#ifdef MNH_IOCDF4
 !Remark: IO_Coordvar_write_nc4 disabled (for the moment) for Z-split files
 !        because it introduce a serialization due to MPI communications inside the call
 !       !Write coordinates variables in netCDF file
@@ -595,7 +597,7 @@ SELECT CASE(TPFILE%CTYPE)
 #endif
       IF (TZFILE_IOZ%LMASTER) THEN
         if (tzfile_ioz%cformat == 'LFI'     .or. tzfile_ioz%cformat == 'LFICDF4') call IO_File_close_lfi(tzfile_ioz,iresp)
-#if defined(MNH_IOCDF4)
+#ifdef MNH_IOCDF4
         if (tzfile_ioz%cformat == 'NETCDF4' .or. tzfile_ioz%cformat == 'LFICDF4') call IO_File_close_nc4(tzfile_ioz,iresp)
 #endif
       END IF
@@ -723,7 +725,7 @@ end subroutine IO_File_check_format_exist
 
 subroutine IO_File_open_format( tpfile, hprogram_orig )
 
-#if defined(MNH_IOCDF4)
+#ifdef MNH_IOCDF4
 use mode_io_file_nc4, only: IO_File_create_nc4, IO_File_open_nc4
 #endif
 use mode_io_file_lfi, only: IO_File_create_lfi, IO_File_open_lfi
@@ -736,7 +738,7 @@ integer :: iresp
 
 call Print_msg( NVERB_DEBUG, 'IO', 'IO_File_open_format', 'called for '//TRIM(tpfile%cname) )
 
-#if defined(MNH_IOCDF4)
+#ifdef MNH_IOCDF4
     IF (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4') THEN
       SELECT CASE (TPFILE%CMODE)
         CASE('READ')
diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90
index 1984e4cce..a257e66b8 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -14,7 +14,7 @@
 !  P. Wautelet 25/06/2019: added IO_Field_read for 3D integer arrays (IO_Field_read_nc4_N3)
 !  P. Wautelet 18/09/2019: correct support of 64bit integers (MNH_INT=8)
 !-----------------------------------------------------------------
-#if defined(MNH_IOCDF4)
+#ifdef MNH_IOCDF4
 module mode_io_read_nc4
 
 use modd_field,        only: tfielddata
diff --git a/src/Makefile.MESONH.mk b/src/Makefile.MESONH.mk
index a041d5ed4..1cc335d2d 100644
--- a/src/Makefile.MESONH.mk
+++ b/src/Makefile.MESONH.mk
@@ -483,7 +483,9 @@ endif
 ##########################################################
 # NETCDF4 INPUT/OUTPUT in MesoNH 
 ifdef MNH_IOCDF4
-CPPFLAGS_MNH += -DMNH_IOCDF4=$(MNH_IOCDF4)
+CPPFLAGS_MNH += -DMNH_IOCDF4
+else
+VER_CDF="NONE"
 endif
 #
 # NetCDF  : AUTO install of netcdf-4.X.X on PC linux to avoid problem with compiler
-- 
GitLab