MNH-V5-7-2
Release date : 16/05/2025
Warning
We fully encourage all users to move to 5-7-2 especially those using grid-nesting (see major bugfix)
Major bugfix
Spawning: interpolation of hydrometeors RRT, RIT, RST et RGT were set to RCT. This affects the initialization of all sub-domains from spawning
Spawning: interpolation of surface rain fields (INPRC, ACPRC, INDEP, ACDEP, INPRR, ACPRR, INPRR3D, INPRS, ACPRS, INPRG, ACPRG, INPRH, ACPRH) and EVAP3D were wrong
Spawning on same resolution: the orography (ZS) was badly interpolated in the case (KDXRATIO==1 .AND. KDYRATIO==1)
I/O
Outputs: compression parameters per variable
It is now possible to set the compression parameters independently for each variable.
To use it, you have to set the following parameters in the NAM_OUTPUT namelist (m: model number, NBM: maximum number of boxes/subdomains (20), NVM: maximum number of fields/variables (192)). Settings that take priority over global settings for the file:
COUT_COMPRESS_LOSSY_ALGO(m) = 'NONE'has been added (default value remains GranularBR)NOUT_VAR_REDUCE_FLOAT_PRECISION(m,NVM): reduction of floating point precision per variable (netCDF)NOUT_VAR_COMPRESS_LEVEL(m,NVM): compression level per variable (netCDF)COUT_VAR_COMPRESS_LOSSY_ALGO(m,NVM): lossy compression per variable (netCDF, only floating points fields)NOUT_VAR_COMPRESS_LOSSY_NSD(m,NVM): number of significant decimals (or bits) to keep per variableNOUT_BOX_VAR_REDUCE_FLOAT_PRECISION(m,NBM,NVM): reduction of floating point precision for variables in boxes/subdomains (netCDF)NOUT_BOX_VAR_COMPRESS_LEVEL(m,NBM,NVM): compression level for variables in boxes/subdomains (netCDF)COUT_BOX_VAR_COMPRESS_LOSSY_ALGO(m,NBM,NVM): lossy compression for variables in boxes/subdomains (netCDF, only floating points fields)NOUT_BOX_VAR_COMPRESS_LOSSY_NSD(m,NBM,NVM): number of significant decimals (or bits) to keep for variables in boxes/subdomains
Outputs: threshold filtering (per variable)
It is now possible to filter the values of a field with different thresholds.
This is only available for variables stored in floating point format.
To use it, you have to set the following parameters in the NAM_OUTPUT namelist (m: model number, NBM: maximum number of boxes/subdomains (20), NVM: maximum number of fields/variables (192)):
XOUT_VAR_THR_MIN(m,NVM),XOUT_VAR_THR_MAX(m,NVM),XOUT_VAR_THR_ABSMIN(m,NVM),XOUT_VAR_THR_ABSMAX(m,NVM): threshold values (min, max, absolute value min or max; not active by default)COUT_VAR_THR_MIN_BEHAVIOR(m,NVM),COUT_VAR_THR_MAX_BEHAVIOR(m,NVM),COUT_VAR_THR_ABSMIN_BEHAVIOR(m,NVM),COUT_VAR_THR_ABSMAX_BEHAVIOR(m,NVM): replacement value for filtered values. Possible options depend on the threshold type:NONE
ZERO (default for MIN if >0 and for ABSMIN)
MIN, MAX
FILLVALUE (default for MIN si <0, MAX and ABSMAX)
VALIDMIN, VALIDMAX
UNDEF, NEGUNDEF
ABSMIN, ABSMAX
EXCLRANGE (to remove values in a range)
XOUT_BOX_VAR_THR_MIN(m,NBM,NVM),XOUT_BOX_VAR_THR_MAX(m,NBM,NVM),XOUT_BOX_VAR_THR_ABSMIN(m,NBM,NVM),XOUT_BOX_VAR_THR_ABSMAX(m,NBM,NVM): threshold values for the variables inside the boxes/subdomainsCOUT_BOX_VAR_THR_MIN_BEHAVIOR(m,NBM,NVM),COUT_BOX_VAR_THR_MAX_BEHAVIOR(m,NBM,NVM),COUT_BOX_VAR_THR_ABSMIN_BEHAVIOR(m,NBM,NVM),COUT_BOX_VAR_THR_ABSMAX_BEHAVIOR(m,NBM,NVM): replacement value for filtered values for the variables inside the boxes/subdomains
Outputs: rounding factor (per variable)
It is now possible to round each value of a field to a multiple of a choosen value.
For example, all the values of a field can be rounded to a multiple of 0.1. In that case, the range of possible and stored values will look like this: …, -0.2, -0.1, 0.0, 0.1, 0.2,…
This is useful to reduce the number of existing different values of a variable
This approach can strongly increase the compression and therefore reduce the size of the output files
This is available only for variables stored in floating point format
It is advised to not enable lossy compression when enabling this option because the 2 approaches have similarities and too much information could be lost
The rounding factor can be set variable per variable
To use it, you have to set the following parameters in the NAM_OUTPUT namelist (m: model number, NBM: maximum number of boxes/subdomains (20), NVM: maximum number of fields/variables (192)):
XOUT_VAR_RND_FACTOR(m,NVM): rounding factor (non active by default)XOUT_BOX_VAR_RND_FACTOR(m,NBM,NVM): same for the variables inside the boxes/subdomains
Other changes
Compression: all datatypes can be compressed (only floating point data could be compressed in previous Meso-NH versions)
Stations / Profilers: add precipitation fields (instantaneous and accumulated)
Stations / Profilers: possible with a dry atmosphere
Stations / Profilers: possible with a cartesian domain
Zsplit files: automatic detection of the number of Zsplit files (NB_PROCIO_R` in namelist NAM_CONFZ not necessary anymore to read netCDF files written from version Meso-NH 5.7.2)
MNH_COMPRESS_LEVEL, MNH_NSUBFILES and MNH_IS_ROOTFILE attributes have been added in all netCDF files
level and MNH_SUBFILE_TYPE attributes added in Zsplit netCDF files
Useless .des file are not written any more (mainly at PGD and DIAG steps)
Useless files not written any more (empty OUTPUT_LISTING0, file_for_xtransfer and pressure solver statistics files)
Restarts: better reproducibility
The behavior related to the NITR parameter of the NAM_DYNn namelist has been modified.
in case of START, if
NITRis provided, it is used (unchanged from the previous Meso-NH versions). If not provided, it is set to a default value (instead of using the value from the .des file). Most of the time, this should (slightly) reduce the computation time at start (due to the fact that NITR should generally be higher at the PREP stage).in case of restart,
NITRmay not be provided (before: it was forced to the value of EXSEGn.nam if provided). The value used is the previous one (found in the .des file from which the restart is performed).
SURFEX
LCHECK_TEBadaptation for single precisionMultiple fixes for multilayer TEB
ZENITAL angle needs to be taken into account for URBTREE
Fix PREP_REAL_CASE in real4 with surface PGD in Lfi real8
Mean field
Fix initialization
Lagrangian trajectories
Computation optimization
Z_TRAJ initial positions were not initialized correctly
Ocean-Atmosphere-Wave coupling
Fixed a bug in the parallel compilation of the toy model (when using
export VER_OASIS=OASISAUTObefore configure)Added sea surface currents in the turbulence scheme (by default, sea surface currents are set to 0 m/s)
Chemistry
Modified the read CAMS routine to support the new extracted NetCDF files using the CDS API (https://ads.atmosphere.copernicus.eu/how-to-api).
Cleaning
Tabulations are removed (not conformant to Fortran standard)
ZOOM_PGD is deleted
Changed LA to LAERO in some output files
External libraries and tools
Fix MNH2LPDM
Due to changes in Anaconda’s licensing terms in 31 March 2024 (https://legal.anaconda.com/policies/), we migrate from Anaconda (
README_MNH_COND) to Miniforge (README_MNH_CONDA_MINIFORGE) for Python environment managementUpgrade HDF5 to version 1.14.6 (instead of 1.14.2)
Upgrade libaec to version 1.1.3 (instead of 1.1.2)
Upgrade netCDF-C to version 4.9.3 (instead of 4.9.2)
Upgrade ecCodes to version 2.41.0 (instead of 2.25.0).
Note
A bugfix has been applied to the library netCDF-C (see https://github.com/Unidata/netcdf-c/issues/3091)