diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index d37ce4b88d39e584d77ee3d35c54788fd81851c8..2a7d97bd0dea403d82a635b222a5e6d2f841aeb8 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -609,7 +609,16 @@ IF (TPFILE%LMASTER) THEN CALL LFIFER(IRESP8,TPFILE%NLFIFLU,YSTATU) IRESP = IRESP8 END IF - IF (ASSOCIATED(TPFILE%TNCDIMS)) CALL CLEANIOCDF(TPFILE%TNCDIMS) +#if defined(MNH_IOCDF4) + IF (TPFILE%NNCID/=-1) THEN + ! Close Netcdf File + IRESP = NF90_CLOSE(TPFILE%NNCID) + IF (IRESP /= NF90_NOERR) THEN + CALL PRINT_MSG(NVERB_WARNING,'IO','FMCLOS_ll','NF90_CLOSE error: '//TRIM(NF90_STRERROR(IRESP))) + END IF + IF (ASSOCIATED(TPFILE%TNCDIMS)) CALL CLEANIOCDF(TPFILE%TNCDIMS) + END IF +#endif IF (IRESP == 0) THEN !! Write in pipe #if defined(MNH_LINUX) || defined(MNH_SP4) diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 9cb6bee5a6d08bc2e4080d141642e562413323a5..8c2d65a50bde08bd1ef53d676c49e1fb0d2de77c 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -786,7 +786,16 @@ CONTAINS CALL IOFREEFLU(INT(TPFILE%NLFIFLU)) IRESP2 = IRESP8 END IF - IF (ASSOCIATED(TZFILE%TNCDIMS)) CALL CLEANIOCDF(TZFILE%TNCDIMS) +#if defined(MNH_IOCDF4) + IF (TZFILE%NNCID/=-1) THEN + ! Close Netcdf File + IRESP = NF90_CLOSE(TZFILE%NNCID) + IF (IRESP /= NF90_NOERR) THEN + CALL PRINT_MSG(NVERB_WARNING,'IO','CLOSE_ll','NF90_CLOSE error: '//TRIM(NF90_STRERROR(IRESP))) + END IF + IF (ASSOCIATED(TZFILE%TNCDIMS)) CALL CLEANIOCDF(TZFILE%TNCDIMS) + END IF +#endif END IF END DO ! diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 index 86805e939275378dfe80a3b2e550bcd45d6455c8..61b4ce68b6d76b6a268ff02cca88a0d209420d17 100644 --- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 +++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 @@ -47,7 +47,7 @@ INTERFACE IO_READ_FIELD_NC4 END INTERFACE IO_READ_FIELD_NC4 ! Public from module netcdf -PUBLIC NF90_OPEN,NF90_CREATE,NF90_NOWRITE,NF90_CLOBBER,NF90_NETCDF4,NF90_NOERR,NF90_STRERROR +PUBLIC NF90_CLOSE,NF90_OPEN,NF90_CREATE,NF90_NOWRITE,NF90_CLOBBER,NF90_NETCDF4,NF90_NOERR,NF90_STRERROR ! Public from this module : PUBLIC NEWIOCDF,CLEANIOCDF,IO_WRITE_FIELD_NC4,IO_READ_FIELD_NC4,IO_WRITE_HEADER_NC4 @@ -92,12 +92,6 @@ INTEGER(KIND=IDCDF_KIND) :: IRESP CALL PRINT_MSG(NVERB_DEBUG,'IO','CLEANIOCDF','called') -! Close Netcdf File -IRESP = NF90_CLOSE(PIOCDF%NCID) -IF (IRESP /= NF90_NOERR) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','CLEANIOCDF','NF90_CLOSE error: '//TRIM(NF90_STRERROR(IRESP))) -END IF - ! Clean DIMLIST and DIMSTR CALL CLEANLIST(PIOCDF%DIMLIST) CALL CLEANLIST(PIOCDF%DIMSTR)