From dd91db87234f1e58d9c034a6ca31a1246a80d186 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domokos=20S=C3=A1rm=C3=A1ny?= Date: Wed, 20 May 2026 12:28:43 +0000 Subject: [PATCH 1/2] ifs2mars: Use the term laplacianOperator consistently everywhere --- .../data_representation_par_mod.F90 | 18 +++++++++--------- src/multiom/ifs2mars/ifs2mars/ifs2mars_mod.F90 | 2 +- .../output-manager/multio_utils_mod.F90 | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/multiom/encoders/dictionaries/parametrization/data_representation_par_mod.F90 b/src/multiom/encoders/dictionaries/parametrization/data_representation_par_mod.F90 index adfa4e65c..e34fef537 100644 --- a/src/multiom/encoders/dictionaries/parametrization/data_representation_par_mod.F90 +++ b/src/multiom/encoders/dictionaries/parametrization/data_representation_par_mod.F90 @@ -23,7 +23,7 @@ MODULE DATA_REPRESENTATION_PAR_MOD !> DATA_REPRESENTATION information I am not able to fit into mars message TYPE :: DATA_REPRESENTATION_PAR_T INTEGER(KIND=JPIB_K) :: BITS_PER_VALUE_= 16_JPIB_K - REAL(KIND=JPRD_K) :: LAPLACIAN_SCALE_FACTOR_ = 0.5_JPRD_K + REAL(KIND=JPRD_K) :: LAPLACIAN_OPERATOR_ = 0.5_JPRD_K CONTAINS PROCEDURE, NON_OVERRIDABLE, PUBLIC, PASS :: INIT => DATA_REPRESENTATION_PAR_INIT PROCEDURE, NON_OVERRIDABLE, PUBLIC, PASS :: COPY_FROM => DATA_REPRESENTATION_PAR_COPY_FROM @@ -82,7 +82,7 @@ PP_THREAD_SAFE FUNCTION DATA_REPRESENTATION_PAR_INIT( DATA_REPRESENTATION_PAR, H ! Copy the data DATA_REPRESENTATION_PAR%BITS_PER_VALUE_ = UNDEF_PARAM_E - DATA_REPRESENTATION_PAR%LAPLACIAN_SCALE_FACTOR_ = 0.5_JPRD_K + DATA_REPRESENTATION_PAR%LAPLACIAN_OPERATOR_ = 0.5_JPRD_K ! Trace end of procedure (on success) PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() @@ -172,7 +172,7 @@ PP_THREAD_SAFE FUNCTION DATA_REPRESENTATION_PAR_FREE( DATA_REPRESENTATION_PAR, H ! Copy the data DATA_REPRESENTATION_PAR%BITS_PER_VALUE_ = UNDEF_PARAM_E - DATA_REPRESENTATION_PAR%LAPLACIAN_SCALE_FACTOR_ = 0.5_JPRD_K + DATA_REPRESENTATION_PAR%LAPLACIAN_OPERATOR_ = 0.5_JPRD_K ! Trace end of procedure (on success) PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() @@ -263,7 +263,7 @@ PP_THREAD_SAFE FUNCTION DATA_REPRESENTATION_PAR_COPY_FROM( DATA_REPRESENTATION_P ! Copy the data DATA_REPRESENTATION_PAR_TO%BITS_PER_VALUE_ = DATA_REPRESENTATION_PAR_FROM%BITS_PER_VALUE_ - DATA_REPRESENTATION_PAR_TO%LAPLACIAN_SCALE_FACTOR_ = DATA_REPRESENTATION_PAR_FROM%LAPLACIAN_SCALE_FACTOR_ + DATA_REPRESENTATION_PAR_TO%LAPLACIAN_OPERATOR_ = DATA_REPRESENTATION_PAR_FROM%LAPLACIAN_OPERATOR_ ! Trace end of procedure (on success) PP_TRACE_EXIT_PROCEDURE_ON_SUCCESS() @@ -389,10 +389,10 @@ PP_THREAD_SAFE FUNCTION READ_DATA_REPRESENTATION_PAR_FROM_YAML( DATA_REPRESENTAT DATA_REPRESENTATION_PAR%BITS_PER_VALUE_ = 16_JPIB_K END IF - !> Read the "laplacian scale factor" - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( DATA_REPRESENTATION_CONFIGURATION, 'laplacian-scale-factor', HAS_KEY, HOOKS ) + !> Read the "laplacian operator" + PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_CONFIGURATION_HAS_KEY( DATA_REPRESENTATION_CONFIGURATION, 'laplacian-operator', HAS_KEY, HOOKS ) IF ( HAS_KEY ) THEN - PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_FLOAT( DATA_REPRESENTATION_CONFIGURATION, 'laplacian-scale-factor', DATA_REPRESENTATION_PAR%LAPLACIAN_SCALE_FACTOR_, HOOKS ) + PP_TRYCALL(ERRFLAG_UNABLE_TO_READ_CFG) YAML_READ_FLOAT( DATA_REPRESENTATION_CONFIGURATION, 'laplacian-operator', DATA_REPRESENTATION_PAR%LAPLACIAN_OPERATOR_, HOOKS ) ELSE DATA_REPRESENTATION_PAR%BITS_PER_VALUE_ = 0.5_JPRD_K END IF @@ -535,10 +535,10 @@ PP_THREAD_SAFE FUNCTION WRITE_DATA_REPRESENTATION_PAR_TO_YAML( DATA_REPRESENTATI ! convert integer to string CTMP = REPEAT(' ', MAX_STR_LEN) - PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_STRING) TO_STRING( DATA_REPRESENTATION_PAR%LAPLACIAN_SCALE_FACTOR_, CTMP, HOOKS ) + PP_TRYCALL(ERRFLAG_UNABLE_TO_CONVERT_TO_STRING) TO_STRING( DATA_REPRESENTATION_PAR%LAPLACIAN_OPERATOR_, CTMP, HOOKS ) ! Write to the unit - WRITE( UNIT, '(A,A,A)', IOSTAT=WRITE_STAT ) REPEAT(' ', OFFSET+2), 'laplacian-scale-factor: ', TRIM(ADJUSTL(CTMP)) + WRITE( UNIT, '(A,A,A)', IOSTAT=WRITE_STAT ) REPEAT(' ', OFFSET+2), 'laplacian-operator: ', TRIM(ADJUSTL(CTMP)) PP_DEBUG_CRITICAL_COND_THROW( WRITE_STAT.NE.0, ERRFLAG_WRITE_ERROR ) ! Add an empty line diff --git a/src/multiom/ifs2mars/ifs2mars/ifs2mars_mod.F90 b/src/multiom/ifs2mars/ifs2mars/ifs2mars_mod.F90 index a6148a790..36cc94af9 100644 --- a/src/multiom/ifs2mars/ifs2mars/ifs2mars_mod.F90 +++ b/src/multiom/ifs2mars/ifs2mars/ifs2mars_mod.F90 @@ -3428,7 +3428,7 @@ PP_THREAD_SAFE FUNCTION IFS2MARS_SET_GEOMETRY( IFS_MSG, IFS_PAR, REPRES_NAME, & MSG%TRUNCATION = IFS_PAR%GEO_%ISMAX PAR%GEOMETRY%TO_BE_DEALLOCATED = .FALSE. PAR%GEOMETRY%REPRES => REPRESENTATION - PAR%DATA_REPRESENTATION%LAPLACIAN_SCALE_FACTOR_ = IFS_MSG%ZP_ + PAR%DATA_REPRESENTATION%LAPLACIAN_OPERATOR_ = IFS_MSG%ZP_ ELSE PP_DEBUG_CRITICAL_THROW( ERRFLAG_UNSUPPORTED_REPRESENTATION ) ENDIF diff --git a/src/multiom/ifs2mars/output-manager/multio_utils_mod.F90 b/src/multiom/ifs2mars/output-manager/multio_utils_mod.F90 index 4d037f68d..81c72b730 100644 --- a/src/multiom/ifs2mars/output-manager/multio_utils_mod.F90 +++ b/src/multiom/ifs2mars/output-manager/multio_utils_mod.F90 @@ -1446,10 +1446,10 @@ PP_THREAD_SAFE FUNCTION MULTIO_FILL_MARS_METADATA( MARS, PAR, MIOMD, HOOKS ) RES PP_DEBUG_CRITICAL_COND_THROW(ERR.NE.MULTIO_SUCCESS, ERRFLAG_UNABLE_TO_WRITE_MULTIO_METADATA) ENDIF - ! Handle "laplacianScaleFactor" - IF ( PAR%DATA_REPRESENTATION%LAPLACIAN_SCALE_FACTOR_ .NE. UNDEF_PARAM_E ) THEN - IF ( PAR%DATA_REPRESENTATION%LAPLACIAN_SCALE_FACTOR_ .GT. 0 ) THEN - ERR = MIOMD%SET( 'misc-laplacianScaleFactor', PAR%DATA_REPRESENTATION%LAPLACIAN_SCALE_FACTOR_ ) + ! Handle "laplacianOperator" + IF ( PAR%DATA_REPRESENTATION%LAPLACIAN_OPERATOR_ .NE. UNDEF_PARAM_E ) THEN + IF ( PAR%DATA_REPRESENTATION%LAPLACIAN_OPERATOR_ .GT. 0 ) THEN + ERR = MIOMD%SET( 'misc-laplacianOperator', PAR%DATA_REPRESENTATION%LAPLACIAN_OPERATOR_ ) PP_DEBUG_CRITICAL_COND_THROW(ERR.NE.MULTIO_SUCCESS, ERRFLAG_UNABLE_TO_WRITE_MULTIO_METADATA) ENDIF ENDIF From a35ced4a5d3a3e10432d5f7c37839e973db34907 Mon Sep 17 00:00:00 2001 From: Mirco Valentini <127779084+MircoValentiniECMWF@users.noreply.github.com> Date: Tue, 26 May 2026 20:34:52 +0200 Subject: [PATCH 2/2] Reduce CONDITIONS array size from 4 to 2 --- src/multiom/ifs2mars/ifs2mars/ifs2mars_mod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/multiom/ifs2mars/ifs2mars/ifs2mars_mod.F90 b/src/multiom/ifs2mars/ifs2mars/ifs2mars_mod.F90 index 36cc94af9..cf7e692f1 100644 --- a/src/multiom/ifs2mars/ifs2mars/ifs2mars_mod.F90 +++ b/src/multiom/ifs2mars/ifs2mars/ifs2mars_mod.F90 @@ -103,7 +103,7 @@ PP_THREAD_SAFE FUNCTION WAM2MARS_IS_WAVE_SPECTRA( IFS_MSG, IFS_PAR, IS_WAVE_SPEC INTEGER(KIND=JPIB_K) :: RET ! Local variables - LOGICAL, DIMENSION(4) :: CONDITIONS + LOGICAL, DIMENSION(2) :: CONDITIONS ! Local variables declared by the preprocessor for debugging purposes PP_DEBUG_DECL_VARS