From a0abda59d453285573b470c2f19aed151c7b1737 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 7 Feb 2024 11:27:12 +0100 Subject: [PATCH] Philippe 07/02/2024: IO: add attributes in written netCDF files for compression and float precision reduction --- src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 | 27 +++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 index ef95fa496..01d333dba 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 @@ -2395,6 +2395,33 @@ IF (TPFILE%LMASTER) THEN istatus = NF90_PUT_ATT( tpfile%nncid, NF90_GLOBAL, 'MNH_REDUCE_DIMENSIONS_IN_FILES', '0') endif + ! Add attributes for compression and float precision reduction +#if (MNH_REAL == 4) + ISTATUS = NF90_PUT_ATT( TPFILE%NNCID, NF90_GLOBAL, 'MNH_REDUCE_FLOAT_PRECISION', '0' ) +#else + IF ( TPFILE%LNCREDUCE_FLOAT_PRECISION ) THEN + ISTATUS = NF90_PUT_ATT( TPFILE%NNCID, NF90_GLOBAL, 'MNH_REDUCE_FLOAT_PRECISION', '1' ) + ELSE + ISTATUS = NF90_PUT_ATT (TPFILE%NNCID, NF90_GLOBAL, 'MNH_REDUCE_FLOAT_PRECISION', '0' ) + END IF +#endif + IF ( ISTATUS /= NF90_NOERR ) & + CALL IO_Err_handle_nc4( istatus, 'IO_FILE_WRITE_HEADER', 'NF90_PUT_ATT', 'MNH_REDUCE_FLOAT_PRECISION' ) + + IF ( TPFILE%LNCCOMPRESS ) THEN + ISTATUS = NF90_PUT_ATT( TPFILE%NNCID, NF90_GLOBAL, 'MNH_COMPRESS', '1' ) + ELSE + ISTATUS = NF90_PUT_ATT( TPFILE%NNCID, NF90_GLOBAL, 'MNH_COMPRESS', '0' ) + END IF + IF ( ISTATUS /= NF90_NOERR ) CALL IO_Err_handle_nc4( istatus, 'IO_FILE_WRITE_HEADER', 'NF90_PUT_ATT', 'MNH_COMPRESS' ) + + IF ( TPFILE%LNCCOMPRESS_LOSSY ) THEN + ISTATUS = NF90_PUT_ATT( TPFILE%NNCID, NF90_GLOBAL, 'MNH_COMPRESS_LOSSY', '1' ) + ELSE + ISTATUS = NF90_PUT_ATT( TPFILE%NNCID, NF90_GLOBAL, 'MNH_COMPRESS_LOSSY', '0' ) + END IF + IF ( ISTATUS /= NF90_NOERR ) CALL IO_Err_handle_nc4( istatus, 'IO_FILE_WRITE_HEADER', 'NF90_PUT_ATT', 'MNH_COMPRESS_LOSSY' ) + !title !history -- GitLab