From 11928cb00d432ad44663f995e6b30e48e0e8c51d Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 19 Sep 2019 09:48:05 +0200 Subject: [PATCH] Philippe 19/09/2019: temporary workaround for netCDF bug if MNH_INT=8 (if netCDF fortran < 4.4.5) --- src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 index d47fe20c0..fd126febf 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 @@ -12,6 +12,7 @@ ! P. Wautelet 11/01/2019: NVERB_INFO->NVERB_WARNING for zero size fields ! P. Wautelet 01/02/2019: IO_WRITE_COORDVAR_NC4: bug: use of non-associated pointers (PIOCDF%DIM_Nx_y) ! P. Wautelet 18/09/2019: correct support of 64bit integers (MNH_INT=8) +! P. Wautelet 19/09/2019: temporary workaround for netCDF bug if MNH_INT=8 (if netCDF fortran < 4.4.5) !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_write_nc4 @@ -289,10 +290,15 @@ IF(TPFIELD%NTYPE==TYPEINT .AND. TPFIELD%NDIMS>0) THEN ! Remarks: * the attribute '_FillValue' is also recognized by the netCDF library ! and is used when pre-filling a variable ! * it cannot be modified if some data has already been written (->check OEXISTED) +#if ( MNH_INT == 4 ) +!BUG: NF90_PUT_ATT does not work for NF90_INT64 and _FillValue attribute if netCDF-fortran version < 4.4.5 (bug in netCDF) +! (see https://github.com/Unidata/netcdf-fortran/issues/62) IF(.NOT.OEXISTED) THEN + print *,'PW: IO_WRITE_FIELD_ATTR_NC4: put att fillvalue=',TPFIELD%NFILLVALUE STATUS = NF90_PUT_ATT(INCID, KVARID,'_FillValue', TPFIELD%NFILLVALUE) IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','_FillValue') END IF +#endif ! ! Valid_min/max (CF/COMODO convention) STATUS = NF90_PUT_ATT(INCID, KVARID,'valid_min', TPFIELD%NVALIDMIN) -- GitLab