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